在ruby(RoR)中生成javascript代码的最佳方法

ran*_*alo 0 javascript ruby ruby-on-rails

我见过一些使用ruby动态生成javascript代码的rails插件.

1.

%Q ( mixed block of javascript and ruby )
Run Code Online (Sandbox Code Playgroud)

2.

<<-CODE
some mixed ruby and javascript code
CODE
Run Code Online (Sandbox Code Playgroud)

作为一名java开发人员,我不明白

  1. 那些奇怪的语法意味着什么?

  2. 有一种方式比另一种更好吗?

  3. 谁能指出我关于这些事情的适当文件?

Jos*_*sey 6

第一种语法是Ruby的字符串文字语法.具体来说,%Q(大写Q而不是小写)意味着将插入字符串.例如:

%Q[Here's a string with #{a_variable} interpolated!]
Run Code Online (Sandbox Code Playgroud)

请注意,您可以使用任意字符作为打开和关闭分隔符.

第二种语法是Ruby的heredoc语法.打开后的破折号<<表示Ruby将从heredoc块中包含的输入行的开头剥离空格.


Ruby on Rails 已经内置了Prototype JavaScript框架.它还附带了JS生成器辅助方法,它们基于Ruby代码动态生成Prototype代码.

如果你不想,你不需要使用它们.事实上,我很少使用它们或Prototype,因为jQuery是我选择的JS框架.因此,一种方式并不比另一种方式"更好"(除了一般意义上,对于某些情况,heredoc优于字符串文字语法).