我试图创建一个自定义控制器操作(类似“报告”),可以用来为某些图表获取JSON数据。鉴于数据的核心位于我将称为Table1
控制器的位置,所以我将其放置在该方法中。(我也尝试将其移至Table2
控制器,并创建一个全新的Report
控制器,但结果却很糟糕。)我遇到的问题是使它呈现JSON。为简化起见,我将方法简化为以下几种:
def report
@table1 = Table1.all
respond_to do |format|
format.json { render json: @table1}
end
end
导航至/report
或/report.json
抱怨The action 'report' could not be found for Table1Controller
。仅创建文件app/views/table1/report.html.erb
就足以使该消息消失。至于后者,它现在抱怨没有模板。有趣的是,我可以report.json.erb
在同一目录中创建一个文件,错误会消失,但没有JSON数据。
更有意思的是,我在不同的控制器上做了同样的事情,并且工作正常。= /
以上只是我的问题之一。我有几个相关的表,并希望提取需要多个联接的特定信息。我可以编写查询,但是在任何一点上我似乎都无法让Rails与我一起工作。我以为有一种“ Rails”方式可以做到这一点,而我只是没有这样做,这就是我苦恼的原因。下面是查询:
select
table4.name as "Collection",
count(table4.name) as "Totals"
from
table1
left join
table2 on table1.table2_id = table2.id
left join
table3 on table1.table3_id = table3.id
left join
table4 on table3.table4_id = table4.id
left join
table5 on table1.table5_id = table5.id
group by table4.name
order by "Totals" desc
我尝试添加路线的多个排列。我也尝试添加成员路线,如下所示:
resources :table1 do
member do
get 'report'
end
end
产生的路线为/table1/:id/report(.:format)
。这至少声称它找不到“报告”操作。所有其他人都只是抱怨“表演”行动。
我不知道为什么,但是我可以通过将所有内容移到另一个控制器来使它正常工作。/耸耸肩。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句