简体   繁体   English

Ruby on Rails MySQL为nil:NilClass选择页面未定义方法“每个”

[英]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.

相关问题 nil:NilClass的未定义方法“ each” - Undefined method `each' for nil:NilClass Rails 3.2 + ruby​​2 + mysql2 + NoMethodError:未定义的方法&#39;query&#39;为nil:NilClass - Rails 3.2 + ruby2 + mysql2 + NoMethodError: undefined method `query' for nil:NilClass nil的未定义方法`eq':带有rails 3的NilClass和ubuntu hardy上的ruby enterprise - undefined method `eq' for nil:NilClass with rails 3 and ruby enterprise on ubuntu hardy Rails mysql2 undefined方法`accept&#39;代表nil:NilClass - Rails mysql2 undefined method `accept' for nil:NilClass 移至mysql后,未定义的方法&#39;+ @&#39;用于nil:NilClass rails - undefined method `+@' for nil:NilClass rails after moving to mysql Rails为nil:NilClass使用的未定义方法`email&#39; - Rails undefined method `email' for nil:NilClass nil:NilClass的未定义方法&#39;gsub&#39;或在rails中如何使用gsub方法 - undefined method `gsub' for nil:NilClass or how to use gsub method in rails ruby/sql 语法未定义方法“查询”为 nil:NilClass (NoMethodError) - ruby/sql syntax undefined method `query' for nil:NilClass (NoMethodError) nil的未定义方法`code':带有rails和遗留数据库的NilClass消息 - undefined method `code' for nil:NilClass message with rails and a legacy database “ nil:NilClass的未定义方法&#39;accept&#39;” - “undefined method `accept' for nil:NilClass”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM