我最近在我的公司内部将我的网页迁移到Ruby on Rails,我已经安装了mysql并阅读,但我正在尝试设置一个网页,并显示一些基本信息,我得到这个未定义方法`每个'错误。如果有人可以伸出援助之手,那将是有用的,我觉得我只是错过了一些东西,一旦我对它进行了分类,我就会陷入困境!
NoMethodError in Index#toolkit
Showing /rhel5pdi/apollo/var/env/BlackMesaRails/rails-root/app/views/index/toolkit.html.erb where line #9 raised:
undefined method `each' for nil:NilClass
Extracted source (around line #9):
6: <h3>Toolkit</h3>
7: </div>
8: <p>
9: <% @toolkit_urls.each do |toolkit| %>
10: <div class="page-header"><h3><%= raw toolkit.name %></h3></div>
11: <p><%= raw toolkit.url %></p>
12: <% end %>
Rails.root: /rhel5pdi/apollo/var/env/BlackMesaRails/rails-root
Application Trace | Framework Trace | Full Trace
app/views/index/toolkit.html.erb:9:in `_app_views_index_toolkit_html_erb___2469700212325674377_127789780760'
Request
Parameters:
None
Show session dump
Show env dump
Response
Headers:
None
我将显示我的模型,视图和控制器
index_controller.rb
class IndexController < ApplicationController
before_filter :initialize_remote_user
def index
end
def toolkit
@toolkit_urls = HelpToolkit.order(:name)
end
end
toolkit.html.erb
<body>
<div class="col-md-9">
<div class="well sales-pitch">
<div class="page-header">
<h3>Toolkit</h3>
</div>
<p>
<% @toolkit_urls.each do |toolkit| %>
<div class="page-header"><h3><%= raw toolkit.name %></h3></div>
<p><%= raw toolkit.url %></p>
<% end %>
</p>
</div>
</div>
</body>
help_toolkit.rb(型号)
class HelpToolkit < ActiveRecord::Base #class beginning
attr_accessible :id, :url, :name
end
答案 0 :(得分:0)
我可能错了,但看起来你没有在索引方法中分配变量:
def index
#assign variable here! Or call the toolkit method here
end
def toolkit
@toolkit_urls = Toolkit.select('url, name').from('test.help_toolkit').order('name')
end
编辑:
不好意思。误读了动作名称......
答案 1 :(得分:0)
我相信这个
def toolkit
@toolkit_urls = HelpToolkit.All
end
应该是
def toolkit
@toolkit_urls = HelpToolkit.all
end
答案 2 :(得分:0)
我已经纠正了我的问题。模型正在寻找复数表名,因此它正在寻找help_toolkits,所以我要做的就是修改environment.rb文件以使table_pluralization = false。这样做解决了我的问题。