首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未知属性-属性存在

未知属性-属性存在
EN

Stack Overflow用户
提问于 2013-04-17 04:00:48
回答 1查看 3.5K关注 0票数 2

我在一个相当混乱的错误中运行。

我正在尝试提交一个带有嵌套属性的表单--我正在通过Rails 4中的strong_params将这些属性白化。

每当我试图提交表单时,我都会得到以下错误:

ActiveRecord::不明属性: email:

“我的用户模型”有以下设置:

user_controller.rb

代码语言:javascript
复制
def update
  if @user.profile.update_attributes!(profile_params)
    respond_to do |format|
      format.js
      format.html { redirect_to edit_user_path(@profile.user) }
    end
  end
end

private 

def profile_params
  params.require(:user).permit(:email,
                               {:profile_attributes => [:first_name, :last_name, :website, :birthdate, :description,
                                 {:address_attributes => [:city, :country, :phone]}]}

  )
end

这给了我以下几点建议:

{“电子邮件”“=>”martin@teachmeo.com、"profile_attributes"=> {"first_name"=>"Martin“、"last_name"=>"Lang”、“网站”“=>”、“生日”“=>”、“description”“=>”}}

我的用户模型看起来如下:

用户(id:整型,电子邮件: string,password_digest: string,created_at: datetime,updated_at: datetime,auth_token: string)

有趣的是,如果我试图通过撬来调试它,@user.update_attributes(profile_params)就能正常工作,不会出现任何问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-17 04:19:07

你在打电话

代码语言:javascript
复制
@user.profile.update_attributes!(profile_params)

这意味着您正在更新Profile实例上的属性(我假设这是模型名称),而不是 User。正如您已经指出的,:email是关于User模型的专栏,而不是 Profile模型。您正在尝试将键:email的值应用到@user.profile,这是一个Profile没有的列,因此出现了ActiveRecord::UnknownAttributeError - unknown attribute: email:错误。

我猜不是你真正想要的

代码语言:javascript
复制
@user.update_attributes!(profile_params)

因为User:email属性,而且可能还有accepts_nested_attributes_for :profile集。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16051241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档