[英]Ruby on Rails MySQL select page undefined method `each' for nil:NilClass
I've recently migrated my webpage internally at my company to Ruby on Rails, and I've got mysql setup and reading, but I'm currently trying to setup a webpage, and display some basic information I am getting this undefined method `each' error. 我最近在公司内部将我的网页迁移到了Ruby on Rails,并且已经安装和阅读了mysql,但是我目前正在尝试建立一个网页,并显示一些基本信息,我正在得到这个未定义的方法错误。 If anyone can lend me a hand it would be useful, I feel like I'm just missing something, and once I get this sorted I can stuck plugging away! 如果有人可以帮我忙,那将很有用,我觉得我只是想念一些东西,一旦我得到了解决,我就可以插上电源!
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
I'll display my Model, view, and controller 我将显示我的模型,视图和控制器
index_controller.rb 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 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 (Model) help_toolkit.rb(模型)
class HelpToolkit < ActiveRecord::Base #class beginning
attr_accessible :id, :url, :name
end
I may be wrong, but it looks like you are not assigning the variable in the index method: 我可能是错的,但是您似乎没有在index方法中分配变量:
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
Edit: 编辑:
Nope sorry. 不,谢谢。 Misread the action name.... 误读了动作名称。
I believe this 我相信这个
def toolkit
@toolkit_urls = HelpToolkit.All
end
should be 应该
def toolkit
@toolkit_urls = HelpToolkit.all
end
I have corrected my issue. 我已更正了我的问题。 The Model was looking for the plural table name, so it was looking for help_toolkits, so what I had to do was modify the environment.rb file to make table_pluralization = false. 该模型正在寻找复数表名称,因此它正在寻找help_toolkits,所以我要做的就是修改environment.rb文件以使table_pluralization = false。 Doing this solved my issue. 这样做解决了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.