【发布时间】:2015-03-27 11:29:46
【问题描述】:
我尝试从嵌套的 json 创建一个对象。但我收到 AssociationTypeMismatch 错误。
我是 ruby on rails 的新手,不确定,这是正确的方法。
我很感谢任何提示。
错误出现在avatars_controller.rb中的“@avatar.from_json(json)”这一行
头像.rb
class Avatar < ActiveRecord::Base
has_one :user
accepts_nested_attributes_for :user
end
用户.rb
class User < ActiveRecord::Base
belongs_to :avatar
end
json
[
{
"id": 7,
"user": {
"id": 47,
"gender": "male",
"name": "Mark",
"created_at": "2015-01-07T11:44:50.991Z",
"updated_at": "2015-01-28T14:39:03.900Z"
},
"login_counter": 5,
"created_at": "2015-01-28T14:39:03.896Z",
"updated_at": "2015-03-03T12:11:43.432Z"
}
]
avatars_controller.rb
def get_data_button
json= open("http..." ).read
@avatar = Avatar.new
@avatar.from_json(json)
respond_to do |format|
if @avatar.save
format.html { redirect_to user_url }
else
format.html { render :new }
end
end
end
def avatar_params
params.require(:avatar).permit( :login_counter, user: [:gender, :name])
end
【问题讨论】:
-
改行
params.require(:avatar).permit( :login_counter, user_attributes: [:gender, :name])... -
@DaveNewton 异常出现在“@avatar.from_json(json)”这一行
-
@freshgrand 你试过我问的吗?
-
json是Hash吗? -
说实话,我真的不知道。我得到了上面的 json 表示,现在我尝试从中创建和对象。
标签: ruby-on-rails json ruby-on-rails-4 strong-parameters