情况
我想使用表格创建新的类别。
在new.html.erb中,一切都很好:
<%= form_for @cat do |f| %>
<%= f.label :description %>
<%= f.text_field :description %>
<br>
<%= f.label :position %>
<%= f.text_field :position %>
<%= f.submit %>
<% end %>
但是在按下“提交”后,引发CategoriesController#create中的ArgumentError(未知键:描述)。http://prntscr.com/1fijdk
Categories_controller.rb
class CategoriesController < ApplicationController
def index
@categories = Category.all
end
def new
@cat = Category.new
end
def create
@category = Category.find(params[:category])
redirect_to :categories
end
end
category.rb
class Category < ActiveRecord::Base
has_many :items
end
schema.rb
ActiveRecord::Schema.define(version: 20130715035836) do
create_table "categories", force: true do |t|
t.string "description"
t.integer "position"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "items", force: true do |t|
t.string "name"
t.float "price"
t.text "description"
t.integer "category_id"
t.datetime "created_at"
t.datetime "updated_at"
end
end
在Rails 3中一切正常,但是在Rails 4中不会生成attr_accessible,我有点困惑。哪里有问题?
Rails 4不使用attr_accessible而是使用strong_parameters来允许(或不允许)质量分配。现在这是由控制器而不是模型来处理的,您必须在控制器中指定允许的属性是什么...
请参阅:http : //guides.rubyonrails.org/action_controller_overview.html#strong-parameters了解其工作原理,请访问https://github.com/rails/strong_parameters
干杯
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句