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

发布于 2024-12-17 20:36:58 字数 267 浏览 1 评论 0原文

我是 Rails 开发的初学者,从 cakephp 搬来的。

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

例如,在 www.website.com/post/add 中,

如果存在 post.js 和 post/add.js ,它们都会自动加载。

有没有办法在 Rails 中做到这一点?我尝试用谷歌搜索,但不知道要搜索什么,也没有找到太多。

(与CSS相同)

I am a beginner at rails development and moved from cakephp.

In cakephp there's something you can do in the layout to automatically include any javascript files that are named the same as either the controller or the action.

For instance in www.website.com/post/add

both post.js and post/add.js will automatically be loaded if they exist.

Is there a way to do this in rails? I tried doing a google but didn't know what to search for and didn't turn up much.

(Same thing with css)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

郁金香雨 2024-12-24 20:36:58

我不知道 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 清单文件,所以也许您想了解更多相关信息。

I'm not aware of this kind of functionality in rails,
but you can simply do this in a layout:

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

it will not check if the file exists, so you can go further and create application helper, and move there a logic of js including and checking if file exists:

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

But since rails 3.1 there is an asset pipeline with application.js manifest file, so maybe you would like to read more about it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文