如何在rails控制器中调用模型方法

时间:2015-05-15 10:43:52

标签: ruby-on-rails ruby ruby-on-rails-4 associations

您好我必须在我的控制器中调用模型方法并查看。所以为此我做了这个:

category.rb

def self.category_list
    category = self.all.collect { |m| [m.name, m.id] }
    return category
end

products_controller.rb

def new
    @product = Product.new
    @category = Category.category_list
end

和products / new.html.erb

<%= form_for @product, action: "create", :html => {:class => "form-group"} do |f| %>
        <div class="fields">
          <%= f.label :model_name %>
          <%= f.text_field :model_name, :class => "form-control" %>
        </div>
        <div class="fields">
          <%= f.label :model_number %>
          <%= f.text_field :model_number, :class => "form-control" %>
        </div>
        <div class="fields">
          <%= f.label :model_number %>
          <%= f.select(:category_id, @category, :prompt => 'Select') %>
        </div>
        </br>
        <div class="actions">
          <%= f.submit "Submit", :class => "btn btn-success" %>
        </div>
<% end %>

我正在给它,它给了我错误ActiveRecord::DangerousAttributeError in ProductsController#new 请指导如何解决这个问题。在此先感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

使用这个宝石:

gem 'safe_attributes'

然后

bundle install

另见gem's documentation,您已完成:)

答案 1 :(得分:0)

请更改您的模型方法写这个

def self.category_list
    Category.all.collect { |c| [c.name, c.id] }
  end

并且您正在使用字段model_name因此,因为它给出了Dangerous属性错误的错误所以请将其更改为名称希望这将起作用。