我刚刚使用脚手架生成的帖子页面但它们无法正常工作当我尝试访问新帖子页面时,它会给我错误。
这是我的布局代码
<p style="color: green"><%= flash[:message] %></p>
<%= yield %>
我尝试访问该页面时收到错误
Processing PostsController#new (for 127.0.0.1 at 2016-10-23 02:45:19) [GET]
Rendering template within layouts/posts
Rendering posts/new
ActionView::TemplateError (undefined method `^' for "4":String) on line #12 of app/views/layouts/posts.html.erb:
9: </head>
10: <body>
11:
12:p style="color: green"><%= flash[:message] %></p>
13:
14: <%= yield %>
15:
app/views/layouts/posts.html.erb:12
app/controllers/posts_controller.rb:29:in `new'
<internal:prelude>:10:in `synchronize'
/home/atta/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
/home/atta/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/home/atta/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
这是我使用ruby 1.9
的宝石列表 actionmailer (2.3.4)
actionpack (2.3.4)
activerecord (2.3.4)
activeresource (2.3.4)
activesupport (2.3.4)
bigdecimal (1.1.0)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rack (1.0.1)
rails (2.3.4)
rake (0.9.2.2)
rdoc (3.9.5)
rubygems-bundler (1.4.4)
rubygems-update (1.8.25)
rvm (1.11.3.9)
sqlite3 (1.3.12)
sqlite3-ruby (1.3.3)
注意:我还将我的RubyGems降级为1.8.25,因为较新的不使用db:create rake命令
答案 0 :(得分:0)
在ruby 1.8中"abc"[0]
返回第一个字符的ASCII码(整数97)
但是在ruby 1.9中它返回带有第一个字符的字符串(字符串“a”)
整数有方法^但字符串没有。
您可以尝试以下方法来解决此问题:
class String
def ^(value)
self.ord ^ value
end
end
这可能不是最好的解决方案(也许最好在rails中修补一些方法)。
答案 1 :(得分:0)
将Rails从2.3.4降级到2.3.18并将rubyGems降级到1.8.25将解决问题。显然Ruby 1.9.3不适合2.3.4