Eri*_*rik 10 json ruby-on-rails
我有以下代码
@asset = Asset.first(
:include => [
:asset_statuses => [
:asset_status_name,
{:asset_location => [
{:asset_floor => :asset_building}
]}
],
:asset_type => [
:asset_category => :asset_department
]
],
Run Code Online (Sandbox Code Playgroud)
(可能不是最好的数据库表设计,但这是我必须使用的)
该Asset.first
工作正常并正确带回的数据,但是当我尝试使用相同:include
的to_json
失败与以下错误方法:
@asset.to_json(
:include => [
:asset_statuses => [
:asset_status_name,
{:asset_location => [
{:asset_floor => :asset_building}
]}
],
:asset_type => [
:asset_category => :asset_department]
]
)
NoMethodError (undefined method `macro' for nil:NilClass):
Run Code Online (Sandbox Code Playgroud)
该to_json
方法:include
与find 具有相同的语法; 我不明白为什么它不起作用.
我认为to_json
:include语法有点不同.
我经常这样做
@asset.to_json(:include => { :asset_statuses => {
:include => :asset_status_name}})
Run Code Online (Sandbox Code Playgroud)
(从一个小的开始然后添加所有其他东西.烦人的架构!)
尝试在单个to_json调用中混合第一和第二顺序关系时出现此错误.这是我原来的:
render :json => @reports.to_json(:include =>
[:report_type, :organisation, :analysis => {:include => :upload}]
Run Code Online (Sandbox Code Playgroud)
它抛出了"未定义的方法`宏'为nil:NilClass"异常.
以下是我修复它的方法:
render :json => @reports.to_json(:include =>
{:report_type => {}, :organisation => {},
:analysis => {:include => {:upload => {}}}})
Run Code Online (Sandbox Code Playgroud)
Array适用于单阶关系,但对于二阶关系,包含对象需要是Hash.
归档时间: |
|
查看次数: |
8536 次 |
最近记录: |