我正在构建一个嵌套模型表单,允许客户端注册(客户端模型)并同时创建登录(用户模型)。但是,对于新的注册人,我想设置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"=>..."
答案 0 :(得分:0)
@client.users.first.role_code = "A"
并测试用户数组对象的数量,请使用以下
if @client.users.size != 1
...
end