ruby-on-rails - 更改默认 Rails text_area 辅助行/列

标签 ruby-on-rails helpers

我发现自己在我所有的 text_area 表单助手上都指定了 :rows => 5,所以我查看了它的定义,发现 DEFAULT_TEXT_AREA_OPTIONS 是指示这些选项的哈希。但是,哈希上有这个卡住方法,我查了一下,这意味着它不能更改。如果您可以向我推荐一些选项来尝试为所有文本区域执行应用程序范围的 :rows => 5,我将非常感激。

谢谢

最佳答案

你可以做:

  • 编写自己的助手:

    def readable_text_area(form, method, options = {})
    form.text_area(方法,选项)
    结束
  • 或使用适当的选项重新定义委派给原始 text_area 的 text_area 方法
  • 或使用您自己的方法“my_text_area”扩展 ActionView::Helpers::InstanceTagMethods 并使用适当的选项委托(delegate)给原始 text_area。然后你可以使用“f.my_text_area(...)”
  • 或更改 DEFAULT_TEXT_AREA_OPTIONS:

  • .
    module ActionView::Helpers::InstanceTagMethods
      remove_const :DEFAULT_TEXT_AREA_OPTIONS
      DEFAULT_TEXT_AREA_OPTIONS = { "cols" => 40, "rows" => 5 }
    end
    

    选项 1 最干净。 2 和 3 补丁已知的公共(public)接口(interface) - 似乎可以接受。 4 个补丁内部 - 有风险。

    关于ruby-on-rails - 更改默认 Rails text_area 辅助行/列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719869/

    相关文章:

    ruby-on-rails - 在 Rails 中跳过验证的更优雅的方法?

    javascript - 使用 handlebars.js 模板以数组中的最后一项为条件

    cakephp-1.3 - 蛋糕PHP : Can you query the database from a helper class?

    unit-testing - 如何正确地将 grails 单元测试辅助方法移动到单独的文件中?

    ruby-on-rails - 如何自动将 OSM 数据集加载到 rake db :create or migrate 上的 rails postgresql db

    ruby-on-rails - 升级到 Rails 5.0.6 后邮件 gem 不发送电子邮件

    javascript - 访问 myfile.js.erb 中的 webpacker 帮助程序

    ruby-on-rails - 带有 Zeus 的 RSpec 3.1,我应该在 spec_helper 中要求 'rspec/rails' 吗?

    ruby-on-rails - 在自定义 Controller 中设计资源和资源名称助手

    Magento - 创建一个帮助类