Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以改变Rails编写HTML ID等的方式吗?_Html_Ruby On Rails_Wordpress - Fatal编程技术网

我们可以改变Rails编写HTML ID等的方式吗?

我们可以改变Rails编写HTML ID等的方式吗?,html,ruby-on-rails,wordpress,Html,Ruby On Rails,Wordpress,我刚开始研究一个系统,这个系统已经建立起来,非常强大,可以学习更好的HTML习惯。我注意到他们使用所有连字符-(例如post-554),而Rails使用下划线(例如post-554)。我想知道Rails中是否有一些自定义设置,比如ActionView::Template.word\u boundary=“-” 有吗?这并不重要,只是想了解人们为什么会这样做 :)您不能更改se分隔符。它被硬编码到Rails中。 例如,post_554由dom_idhelper生成,它在内部依赖于RecordIde

我刚开始研究一个系统,这个系统已经建立起来,非常强大,可以学习更好的HTML习惯。我注意到他们使用所有连字符
-
(例如
post-554
),而Rails使用下划线
(例如
post-554
)。我想知道Rails中是否有一些自定义设置,比如
ActionView::Template.word\u boundary=“-”

有吗?这并不重要,只是想了解人们为什么会这样做


:)

您不能更改se分隔符。它被硬编码到Rails中。 例如,post_554由
dom_id
helper生成,它在内部依赖于
RecordIdentifier

这是定义

def dom_id(record, prefix = nil) 
  if record_id = record.id
    "#{dom_class(record, prefix)}#{JOIN}#{record_id}"
  else
    dom_class(record, prefix || NEW)
  end
end
分隔符,
JOIN
常量被定义为冻结字符串,因此您无法更改它

module RecordIdentifier
  extend self

  JOIN = '_'.freeze
  NEW = 'new'.freeze
有两种方法可以改变它:

  • 创建自己的助手(建议)
  • 用您自己的实现覆盖现有的方法/帮助程序(不建议)
  • 还有一些技术限制解释了这种选择背后的原因,主要与Rails背后的语言有关

    例如,谈论符号

    :post_554   # valid symbol
    :post-554   # invalid symbol
    :"post-554" # valid symbol
    
    使用
    -
    可能需要一种不那么干净的Ruby方法

    就我个人而言,我更喜欢使用
    -
    而不是
    -
    ,除非严格要求,否则我倾向于避免使用标准的Rails助手