无法批量分配受保护的属性:配置文件,

Posted

技术标签:

【中文标题】无法批量分配受保护的属性:配置文件,【英文标题】:Can't mass-assign protected attributes: profiles, 【发布时间】:2012-11-29 06:31:34 【问题描述】:

我阅读了很多相关的帖子,但找不到为什么它不适合我。我仍然有一个“无法批量分配受保护的属性:配置文件”...... 我做错了什么?

我有一个 User 模型和一个具有一对一关系的相关 Profile 模型。 这里是用户模型(简化)

class User < ActiveRecord::Base
  attr_accessible :email, :password, :password_confirmation, :profile_attributes, :profile_id
  has_secure_password

  has_one :profile

  accepts_nested_attributes_for :profile
end

个人资料模型

class Profile < ActiveRecord::Base
attr_accessible :bio, :dob, :firstname, :gender, :lastname, :user_id

belongs_to :user
end

我的用户控制器

def new
@user = User.new 
  respond_to do |format|
    format.html # new.html.erb
    format.json  render json: @user 
  end
end

def create
@user = User.new(params[:user])
@user.build_profile

respond_to do |format|
  if @user.save

    format.html  redirect_to @user, flash: success: 'User was successfully created. Welcome !' 
    format.json  render json: @user, status: :created, location: @user 
  else
    format.html  render action: "new" 
    format.json  render json: @user.errors, status: :unprocessable_entity 
  end
end
end

如果有任何帮助,用户和个人资料都已搭建好。

我也尝试在 User attr_accessible 中使用 ':profiles_attributes' 而不是 'profile_attributes',同样的问题...

也尝试过,在用户控制器中使用“@user.profiles.build”而不是“@user.build_profile”...同样的结果...

任何关于解释的帮助都会很棒(我是一个菜鸟,所以请原谅我)

编辑 我使用的简单形式

<%= simple_form_for(@user) do |f| %>
<%= f.error_notification %>


<%= f.simple_fields_for :profiles do |p| %>
    <div class="nested-form-inputs">
      <%= p.input :lastname %>
      <%= p.input :firstname %>
    </div>
<% end %>


<div class="form-inputs">
  <%= f.input :email %>
  <%= f.input :password %>
  <%= f.input :password_confirmation %>
</div>

<div class="form-actions">
  <%= f.button :submit %>
</div>

<% end %>

干杯

【问题讨论】:

【参考方案1】:

您引用的错误消息是can't mass-assign protected attributes: profiles。我相信你需要一个attr_accessible :profiles(或者可能是:profile

我有一个应用程序

accepts_nested_attributes_for :order_items
attr_accessible :order_item

【讨论】:

解决了这个问题,问题出在 rails 类缓存,我已经重新启动了 rails 服务器,一切正常。【参考方案2】:

问题出在 Rails 类缓存上,我已重新启动服务器,一切都运行良好..,

【讨论】:

以上是关于无法批量分配受保护的属性:配置文件,的主要内容,如果未能解决你的问题,请参考以下文章

无法批量分配受保护的属性

“警告:无法批量分配受保护的属性”

嵌套表单触发“无法批量分配受保护的属性”警告

ActiveAdmin:无法批量分配受保护的属性:电子邮件、密码、密码确认

无法使用 Devise 批量分配受保护的属性以创建 has_many 嵌套模型

尝试将 Jcrop 添加到 Paperclip 时无法批量分配虚拟属性