【问题标题】:Modifying Rails helpers to add HTML classes修改 Rails 助手以添加 HTML 类
【发布时间】:2011-04-19 01:22:51
【问题描述】:

我开始将jQuery UI CSS Framework 用于应用程序,这意味着我必须开始为所有内容添加类。因此,例如,我想让所有按钮都以 jQuery 为主题,这意味着为所有按钮添加一个类。

我想在 Rails 中有一些方法可以修改助手,所以我不必手动为每个按钮添加 :class => 'blah',但我无法解决。这可能吗,还是有人有更好的想法?

【问题讨论】:

    标签: ruby-on-rails jquery-ui jquery-ui-css-framework


    【解决方案1】:

    你只需要用这个类添加覆盖辅助方法。在你的 application_helper.rb

      def button_to(name, options = {}, html_options = {})
        super(name, options, html_options.merge(:class => 'blah'))
      end
    

    【讨论】:

    • 除了默认的 'blah' 类之外,有没有一种方法可以指定更多类?编辑:我用html_options.merge(:class => (html_options[:class] || '') + ' blah')可以用吗?
    • 问题是class同时允许string和array
    【解决方案2】:

    为什么不使用 jquery,类似于:

    $('button').attr('class', 'blah');
    

    【讨论】:

    • 其实这不是一个坏主意。当然,在 Rails 中必须有一种简单的方法来做到这一点。
    • 我做了更多的阅读,看起来这可能是最明智的答案 - 覆盖辅助方法看起来不像是一项简单的任务。除非我今天获得基于 Rails 的解决方案,否则我会将其标记为已接受。
    • 我实际上最终选择了这条路——辅助方式有太多的边缘情况,而且我并没有用辅助方式编写所有的 HTML。 jQuery 方式使用一种技术将所有内容保存在一个地方。不过,我真的不觉得我可以将其标记为已接受的答案,因为另一个回答了我实际提出的问题。不过还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 2010-12-16
    • 2019-11-06
    • 2023-03-26
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多