小编Tia*_*ago的帖子

Rails 3:使用ActiveAdmin和has_one进行批量分配

我正在开发一个rails应用程序,其中我有两个模型UserClient. User由设计支持,负责身份验证,has_one Client并保存给定用户的客户端详细信息.这种关系始终存在,因为我确保Client在创建模型时创建模型User.

对于我正在使用的管理区域ActiveAdmin.现在,当我尝试User通过管理界面创建一个时,我使用这样的表单:

form do |f|
  f.inputs :username, :email, :password
  f.inputs :name => "Client", :for => :client do |client|
    client.inputs :name, :address, ...
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是既保存了User也没Client保存,并且页面重新加载了验证错误.我已经检查过rails console,WARNING: Can't mass-assign protected attributes: client_attributes每当我尝试创建一个时都会有一条消息User.

我已经搜索过这个问题并发现为了允许进行质量分配,必须attr_accessible为每个允许进行分配的字段定义.因此,我已将此指令放在Client模型中,用于上述每个字段,并且消息不断出现,从而阻止模型正确保存.

有没有人对此有所了解?

ruby-on-rails has-one mass-assignment activeadmin

2
推荐指数
1
解决办法
3382
查看次数