我向 USER 添加了成员列。
我试图在提交表单时通过hidden_field将MEMBER的值更改为false。
但是hidden_field的值不起作用! 为什么?
db
class AddMemberToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :member, :boolean, default: true
end
end
用户/视图/表单
<%= form_for(resource, as: resource_name,:html => { :id => "new_user_1"}, url: registration_path(resource_name)) do |f| %>
...
<%= f.hidden_field :member, value: false %>
<%= f.submit "S'inscrire" %>
<% end %>
用户/注册控制器
class Users::RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:name, :fullname, :email, :password, :password_confirmation, :member)
end
def account_update_params
params.require(:user).permit(:name, :fullname,:avatar,:job, :email, :password, :password_confirmation, :current_password)
end
end
感谢您的帮助
答案 0 :(得分:1)
hidden_field
表现为隐藏的text_field
,因此,它需要一个字符串值。我建议您传递一个文本值,您可以在控制器内部将其视为假值。
两个都使用值0/1
OR
另一种方式是:
示例:
def sign_up_params
params[:user][:member] = params[:user] && params[:user][:member] == '0' ? false : true
params.require(:user).permit(:name, :fullname, :email, :password, :password_confirmation, :member)
end
您可以在控制器内部手动处理此问题。