【发布时间】:2015-03-18 17:07:17
【问题描述】:
我有一个带有show 和index 方法的简单控制器。 routes.rb 有一个 resources :foo 条目,当我转到 localhost:3000/foo 时,我得到一个 missing template 错误,即使我在正确的文件夹中有一个 index.json.jbuilder 文件,当我转到 /foo.json 时很容易显示该文件
难道rails不应该看到这个特定视图没有html模板并自动使用json模板吗?
我正在使用 Rails 4.2。
【问题讨论】:
-
Rails 不会这样看。您必须明确指定格式。该文件将呈现到的所有格式。默认情况下,由于文件扩展名,文件
index.json.jbuilder将仅针对 json 请求调用呈现。否则 rails 会抛出模板错误。 -
如果你想为所有格式呈现相同的文件,你可以像
render 'index.json.jbuilder', :formats => [:html, :xml, :js, :json]那样做。
标签: ruby-on-rails json ruby-on-rails-4