有没有办法将红宝石条件放入javascript块?即
javascript:
var config = {
common_value_1 : 1,
common_value_2 : 2
};
- if my_value === true # this must be a ruby condition
config.custom_true_value_1 = "1" ;
config.custom_true_value_2 = "#{my_value}" ;
- else
config.custom_false_value_1 = "1" ;
config.custom_false_value_2 = "#{my_value}" ;或者在这个问题上还有别的解决办法吗?因为我可以用它的丑陋的方式:
javascript:
var config = {
common_value_1 : 1,
common_value_2 : 2
};
- if my_value === true # this must be a ruby condition
javascript:
config.custom_true_value_1 = "1" ;
config.custom_true_value_2 = "#{my_value}" ;
- else
javascript:
config.custom_false_value_1 = "1" ;
config.custom_false_value_2 = "#{my_value}" ;但是我不喜欢它,因为如果配置在if和否则之间有共同的值,那么我会复制我的代码,并且会更大,也很难维护。
更新了更好的示例
发布于 2016-12-09 18:15:37
你有两个选择:
1.使用ruby部分
对于复杂的代码来说,这个场景更好。
我有一个ruby对象,我想要创建一个JSON。因此,在我的瘦文件中,我将创建一个ruby部分:
ruby:
myObject = @object.to_json.html_safe注意html_safe:重要的是不要避开双引号。
然后,您可以在myObject内部使用javascript部分:
javascript:
var data = #{myObject};2.使用双花括号
对于简单的情况,在javascript部分中使用双花括号,如@fphilipe答案中所述:
javascript:
var data = #{{@object.to_json}};https://stackoverflow.com/questions/17794403
复制相似问题