如何在 rails 控制器中调用模型方法
How to call model method in rails controller
您好,我必须在我的控制器和视图中调用模型方法。所以为此我做了这个:
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
请指导如何解决这个问题。在此先感谢您的帮助:)
使用这个 gem:
gem 'safe_attributes'
然后
bundle install
另见 gem's documentation,你就完成了:)
请更改您的模型方法写入此
def self.category_list
Category.all.collect { |c| [c.name, c.id] }
end
并且您正在使用字段 model_name,正因为如此,它给出了危险属性错误的错误,所以请将其更改为名称,希望这会起作用。
您好,我必须在我的控制器和视图中调用模型方法。所以为此我做了这个:
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
请指导如何解决这个问题。在此先感谢您的帮助:)
使用这个 gem:
gem 'safe_attributes'
然后
bundle install
另见 gem's documentation,你就完成了:)
请更改您的模型方法写入此
def self.category_list
Category.all.collect { |c| [c.name, c.id] }
end
并且您正在使用字段 model_name,正因为如此,它给出了危险属性错误的错误,所以请将其更改为名称,希望这会起作用。