简体   繁体   English

Ruby on Rails错误:nil:NilClass的未定义方法

[英]Ruby on Rails error: undefined method for nil:NilClass

I am doing my first ruby on rail project, and have the "undefined method `title' for nil:NilClass" error. 我正在铁路项目上做我的第一个红宝石,并且对nil:NilClass有“未定义的方法'title'”错误。

Here are the codes 这是代码

============index.html.erb======== ============ index.html.erb ========

        <table>
         <% @products.select {|p| p.price.to_i > 200 }.each do |product|%>
         <tr>
            <td><%= product.title %></td>
            <td><%= product.price %></td>

         </tr>
         <% end %>
       </table>

=============products_controller.rb========= ============= products_controller.rb =========

      class ProductsController < ApplicationController
      def index
          @products = Product.all
       end

       def show
          if params[:id] == "ALL"
             @products = Product.all
          else
             @product = Product.find(params[:id])
          end

               Prefix Verb   URI Pattern                                                                              Controller#Action
        welcome_index GET    /welcome/index(.:format)                                                                 welcome#index
             products GET    /products(.:format)                                                                      products#index
                      POST   /products(.:format)                                                                      products#create
          new_product GET    /products/new(.:format)                                                                  products#new
         edit_product GET    /products/:id/edit(.:format)                                                             products#edit
              product GET    /products/:id(.:format)                                                                  products#show
                      PATCH  /products/:id(.:format)                                                                  products#update
                      PUT    /products/:id(.:format)                                                                  products#update
                      DELETE /products/:id(.:format)                                                                  products#destroy
                 root GET    /                                                                                        welcome#index

============= =============

All I want to do is display all product if parameter is "ALL", display some products(price < 50) if parameter is "ONSALE", and individual product when parameter is the product id. 我要做的就是如果参数为“ ALL”则显示所有产品,如果参数为“ ONSALE”则显示某些产品(价格<50),以及当参数为产品ID时显示单个产品。 Any suggestion is welcome! 任何建议都欢迎!

if I read your source code it seem you just need to list product that has price above 200 you can do with where , later probably if you want option to filter data more advance you can learn ransack gem 如果我阅读了您的源代码,似乎您只需要列出价格在200美元以上的产品,就可以在where进行操作 ,稍后,如果您想进一步过滤数据,则可以学习ransack gem

this for your index.html.erb 这用于您的index.html.erb

<table>
  <% @products.each do |product| %>
    <tr>
      <td><%= product.title %></td>
      <td><%= product.price %></td>
    </tr>
  <% end %>
</table>

this your ProductsController 这是您的ProductsController

class ProductsController < ApplicationController
  def index
    # if you want directly to filter just the list product that has price above 200 
    # then you can use where, your view just to show the result of @products

    @products = Product.where('price > ?',200)
  end
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误未定义方法 `+' for nil:NilClass // Ruby on Rails - Error undefined method `+' for nil:NilClass // Ruby on Rails Ruby on Rails中“ nil:NilClass的未定义方法&#39;title&#39;”错误 - “undefined method `title' for nil:NilClass” error in Ruby on Rails params[…] 比较在 ruby​​ on rails 中引发了“undefined method `&gt;&#39; for nil:NilClass”错误 - params[…] comparison raises “undefined method `>' for nil:NilClass” error in ruby on rails Ruby on Rails - nil:NilClass 错误的未定义方法`each&#39; - Ruby on Rails - undefined method `each' for nil:NilClass error nil:NilClass ruby​​在rails上的未定义方法`downcase&#39; - undefined method `downcase' for nil:NilClass ruby on rails Ruby on Rails-nil:NilClass的未定义方法“错误” - Ruby on Rails - undefined method `errors' for nil:NilClass Ruby on Rails:nil:NilClass的未定义方法“ instructors” - Ruby on Rails : undefined method `instructors' for nil:NilClass nil:NilClass 的未定义方法“comment”(ruby on rails) - undefined method `comment' for nil:NilClass (ruby on rails) Ruby on Rails NoMethodError:nil:NilClass的未定义方法“ []” - Ruby on Rails NoMethodError: undefined method `[]' for nil:NilClass 未定义的方法&#39;id&#39;为nil:NilClass,Ruby on Rails - Undefined method 'id' for nil:NilClass, Ruby on Rails
 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM