我有两个具有一对一关系的模型,即用户和作者。
我有两个问题:作者实例未保存,user.name未保存(尽管其他属性也保存)。我认为这是一个权限错误,因为日志显示:
Unpermitted parameters: name, authors
我正在尝试遵循以下步骤:如何在Rails 3中以一对一的关系将表单数据保存到不同的模型?
User.rb
has_one :author
accepts_nested_attributes_for :author
作者.rb
belongs_to :user
authors#new
<%= simple_form_for @user do |f| %>
<%= f.input :name %>
<%= f.input :email %>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<%= f.simple_fields_for :author do |author_form| %>
<%= author_form.input :bio %>
<% end %>
<%= f.submit %>
<% end %>
Users_Controller
def user_params
params.require(:user).permit(:name, :email, :image,
author_attributes: [:id, :bio,])
end
我正在使用Devise gem,并找到了将以下代码添加到Application Controller的解决方案:
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :email, :password, author_attributes: [:id, :bio]) }
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句