加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – “patch”rails渲染函数编辑默认选项

发布时间:2020-12-17 02:50:22 所属栏目:百科 来源:网络整理
导读:当我渲染:在轨道中的xml我总是想要:dasherize =错误的选择.有没有办法将应用程序范围设置为默认值,当然不必修改rails源代码? 也许是一个渲染函数,它以某种方式优先于第一个,然后使用此选项调用它… 解决方法 当其他人来看你的代码时,做这样的事情确实有可
当我渲染:在轨道中的xml我总是想要:dasherize =>错误的选择.有没有办法将应用程序范围设置为默认值,当然不必修改rails源代码?

也许是一个渲染函数,它以某种方式优先于第一个,然后使用此选项调用它…

解决方法

当其他人来看你的代码时,做这样的事情确实有可能导致意外行为的缺点(即直到他们发现你被覆盖的方法,他们可能想知道为什么当没有明确指定时,它表现得像dasherize false. )也就是说,在ApplicationController或您的某个特定控制器中,您可以覆盖render方法.

例如就像是:

class MyController < ApplicationController
  def render(options = nil,extra_options = {},&block)
    options ||= {} # initialise to empty hash if no options specified
    options = options.merge(:dasherize => false) if options[:xml]
    super(options,extra_options,&block)
  end
end

如果你想在你的渲染调用中允许dasherize仍然可以覆盖你可以在另一个方向上进行哈希合并,例如

options = {:dasherize => false}.merge(options)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读