我正在构建一个嵌套模型表单,它允许客户端注册(客户端模型)并同时创建登录(用户模型)。但是,对于新注册者,我想设置 user.role_code(对管理员说“A”),但我一直在努力解决这个问题。从数据模型的角度来看,客户端有多个用户,因为注册后,客户端可以访问应用程序添加其他用户。从这个角度来看,我认为我不能在模型中默认 user_role,因为对于添加的用户,他们的 role_code 可能会有所不同。我想在控制器中设置默认值。
此外,在提交表单后,用户作为数组发送,所以我想确保在注册时只发送一个用户数组对象(显然是出于漏洞原因)。
这是我的代码
#client registration form new.html
<%= form_for @client do |client_form| %>
.....
<%= client_form.fields_for :users do |user_form| %>
<div class="field">
<%= user_form.label :first_name %>
<%= user_form.text_field :first_name %>
</div>
.....
#client Controller
def create
logger.info params.inspect
@client = Client.new(params[:client])
if @client.save
......
#client model
class Client < ActiveRecord::Base
attr_accessible :business_name, ... #and more
attr_accessible :users_attributes
has_many :users
has_many :items
accepts_nested_attributes_for :users, allow_destroy: true
#logger.info params.inspect
"...users_attributes"=>{"0"=>{"first_name"=>..."