gpt4 book ai didi

ruby-on-rails - 未知属性 - 属性存在

转载 作者:行者123 更新时间:2023-12-04 05:01:59 25 4
gpt4 key购买 nike

我遇到了一个非常令人困惑的错误。
我正在尝试提交一个带有嵌套属性的表单 - 我正在通过 Rails 4 中的 strong_params 将这些属性列入白名单。

每当我尝试提交表单时,都会收到此错误:

ActiveRecord::UnknownAttributeError - unknown attribute: email:



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

用户 Controller .rb
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

这给了我以下参数:

{"email"=>"martin@teachmeo.com", "profile_attributes"=> {"first_name"=>"Martin", "last_name"=>"Lang", "website"=>"", "birthdate"=>"", "description"=>""}}



我的用户模型如下所示:

User(id: integer, email: string, password_digest: string, created_at: datetime, updated_at: datetime, auth_token: string)



有趣的是,如果我尝试通过 pry 调试它,@user.update_attributes(profile_params) 工作没有任何问题。

最佳答案

你在打电话

@user.profile.update_attributes!(profile_params)

这意味着您正在更新 Profile 实例上的属性。 (我假设这是型号名称), 不是 User .正如您所指出的, :emailUser 上的一列型号, 不是 Profile模型。您正在尝试为键 :email 应用一个值至 @user.profile ,一列 Profile没有,因此 ActiveRecord::UnknownAttributeError - unknown attribute: email:错误。

我要猜测而不是上面你真正想要的
@user.update_attributes!(profile_params)

User:email属性,也可能有 accepts_nested_attributes_for :profile设置。

关于ruby-on-rails - 未知属性 - 属性存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com