Ruby on rails render:action引发ActionView::MissingTemplate

Ruby on rails render:action引发ActionView::MissingTemplate,ruby-on-rails,Ruby On Rails,我有两个控制器,foo和bar bar#dobar有一个相应的dobar.js.erb文件,当直接使用 */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript foo#dofoo使用命令render:action=>'/bar/dobar'完成。这将导致以下错误消息: ActionView::MissingTemplate (Missing temp

我有两个控制器,
foo
bar

bar#dobar
有一个相应的
dobar.js.erb
文件,当直接使用

*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
foo#dofoo
使用命令
render:action=>'/bar/dobar'
完成。这将导致以下错误消息:

ActionView::MissingTemplate (Missing template foo/bar/action, /application/bar/action with {:locale=>[:en], :formats=>[:js, "application/ecmascript", "application/x-ecmascript", :html, :text,
 :js, :css, :ics, :csv, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :handlers=>[:erb, :builder, :coffee]}. 
Searched in:
  * "/Developer/Workspace/MyProj/app/views"
  * "/Users/bdares/.rvm/gems/ruby-1.9.3-p194/gems/twitter-bootstrap-rails-2.1.0/app/views"
):
  app/controllers/foo_controller.rb:16:in `dofoo'
我也试过:

  • render:action=>'/bar/dobar',:format=>[:js]
  • render:action=>bar/dobar
  • render:template=>'/bar/dobar',:format=>[:js]

怎么了?

如果只是调用模板而不是操作,请尝试此操作

render :template => 'bar/dobar', :format => [:js]

若您只想使用模板,那个么不要调用render:action,而是直接调用render:template。我希望这会解决你的问题。根据文件,这应该是可行的,而且真的没有什么区别。当我使用
render:template
时,我也会收到类似的“缺少模板”消息。您的错误应该不同,我的意思是“缺少模板”,您可以将更改为模板后收到的错误消息展开吗?