在设计控制器中允许参数会导致UnknownAttributeError

时间:2017-06-16 21:00:52

标签: ruby-on-rails devise

我在设计注册视图中编写自定义表单字段

<%=
    select_tag 'user[show]', options_from_collection_for_select(Show.all, "id", "title")
%>

然后,在注册控制器中

def configure_sign_up_params
  devise_parameter_sanitizer.permit(:sign_up, keys:
    [:first_name, :last_name, :email, :password, :password_confirmation, :show])
end

提交表单时,我收到错误

ActiveModel::UnknownAttributeError (unknown attribute 'show' for User.):

如果我不尝试允许新参数,并且我提交表单,则控制台会记录

Unpermitted parameters: show

但一切正常,我可以使用这些参数。我该怎么办?

1 个答案:

答案 0 :(得分:0)

假设您的用户表中有一列show_id,并且select标记定位到此列: <%= select_tag 'user[show_id]', options_from_collection_for_select(Show.all, "id", "title") %>

在你的控制器中: def configure_sign_up_params devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email, :password, :password_confirmation, :show_id]) end