Rails:自动包含动作/控制器特定的javascript文件?

时间:2011-11-23 22:28:19

标签: ruby-on-rails model-view-controller erb

我是rails开发的初学者,并从cakephp转移。

在cakephp中,您可以在布局中执行一些操作,自动包含任何与控制器或操作命名相同的javascript文件。

例如www.website.com/post/add

post.js和post / add.js会自动加载(如果存在)。

有没有办法在rails中执行此操作?我尝试做谷歌,但不知道要搜索什么,并没有出现太多。

(与css相同)

1 个答案:

答案 0 :(得分:7)

我不知道rails中的这种功能, 但你可以在布局中简单地做到这一点:

javascript_include_tag "#{controller.controller_name}"
javascript_include_tag "#{controller.action_name}"

它不会检查文件是否存在,因此您可以更进一步创建应用程序帮助程序,并在那里移动js逻辑,包括并检查文件是否存在:

def include_controller_js
 javascript_include_tag "#{controller.controller_name}" if File.exists?("#{Rails.root}/public/javascripts/#{controller_name}.js")
end

但是因为rails 3.1有一个带有application.js清单文件的asset pipeline,所以也许你想了解更多关于它的信息。