什么人!
我一直在尝试在rails(4)应用程序中实现关联has_and_belongs_to_many。这是我的代码:
我的分类模型
class Admin::Category
include Mongoid::Document
...
has_and_belongs_to_many :estimates, class_name: "User::Estimate", :inverse_of => :categories
end
我的估算模型
class User::Estimate
include Mongoid::Document
...
has_and_belongs_to_many :categories, class_name: "Admin::Category", :inverse_of => :estimates
end
强参数
def user_estimate_params
params.require(:user_estimate).permit({:category_ids => []}, :favorite_time, :city_id, :number_of_guests, :event_date, :stage_where_it_is, :event_type, :observation, user_attributes:[:name, :email, :receive_news, :password, :password_confirmation, :preferred_phone, :alternate_phone])
end
我的要求
Parameters: {"utf8"=>"✓", "authenticity_token"=>"JJk6m+5VV7tCLDeUCRkQatQOw/fFiw8LCV39casua+c=", "user_estimate"=>{"user_attributes"=>{"email"=>"user@email.com"}, "city_id"=>"523b638b5383de1887000001", "event_type"=>"Casamento", "number_of_guests"=>"456", "event_date"=>"21/11/2013", "stage_where_it_is"=>"Nos próximos 30 dias", "category_ids"=>["523b667687924d211527530e", "523b667b87924d2115275317"], "observation"=>""}, "event_type_select"=>"527ace4353455263c9000000", "commit.x"=>"149", "commit.y"=>"40"}
Unpermitted parameters: category_ids
正如您所看到的,我收到错误未经许可的参数:category_ids ,这使我无法保存我的类别,即使已经将类别添加到强参数方法中。
我正在使用MongoDB / Mongoid。
我发现了很多类似的问题,但这些问题已经解决了 => []
对于强参数方法,正如我已经完成的那样。
任何帮助?
欢呼声
答案 0 :(得分:3)
我遇到了同样的问题和建议 field:category_ids,type:Array
没用。但
params.require(:model).permit(category_ids: [], ... )
做到了。
答案 1 :(得分:0)
<强>解决强>
我会说我需要做一个解决方法。我手动创建了一个字段,应该在使用HABTM关联时自动创建。在我的估算模型:
中创建了该字段class User::Estimate
include Mongoid::Document
...
has_and_belongs_to_many :categories, class_name: "Admin::Category", :inverse_of => :estimates
field :category_ids, type: Array
end
PS:必须在HABTM协会之后宣布字段声明。
希望它有所帮助!
干杯!