Ruby on Rails MySQL选择页面未定义的方法`each'为nil:NilClass

时间:2015-09-22 18:36:26

标签: mysql ruby-on-rails ruby

我最近在我的公司内部将我的网页迁移到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

3 个答案:

答案 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。这样做解决了我的问题。