Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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
Ruby on rails 如何将动态Ruby代码嵌入到;javascript";Slim模板中的节?_Ruby On Rails_Ruby_Slim Lang - Fatal编程技术网

Ruby on rails 如何将动态Ruby代码嵌入到;javascript";Slim模板中的节?

Ruby on rails 如何将动态Ruby代码嵌入到;javascript";Slim模板中的节?,ruby-on-rails,ruby,slim-lang,Ruby On Rails,Ruby,Slim Lang,单向: javascript_tag do == "var all_product_ids = #{existing_ids.to_json};" == "var products_json = #{@filter.data.to_json};" 或: 有更好的解决方案吗?我更喜欢做的是将所有javascript保存在一个单独的文件中 例如,我将按如下方式执行(jquery): 在布局中: 那么,您将在js中使用它,如下所示: $.myapp.allProductIds 苗条的

单向:

javascript_tag do
  == "var all_product_ids = #{existing_ids.to_json};"
  == "var products_json   = #{@filter.data.to_json};"
或:


有更好的解决方案吗?

我更喜欢做的是将所有javascript保存在一个单独的文件中

例如,我将按如下方式执行(jquery):

在布局中:

那么,您将在js中使用它,如下所示:

$.myapp.allProductIds
苗条的

javascript:
  var all_product_ids = "#{existing_ids.to_json}";
  var products_json   = "#{@filter.data.to_json}";

我对此也有类似的问题。使用其他人提供的代码对我不起作用,因为slim是html转义我的变量。我最终使用了。这一款是为Sinatra设计的,但他们也为Rails设计了一款宝石。希望它能帮助其他有类似问题的人。

来自 文本插入段落

默认情况下,SLIM转义HTML。
要避免对{content}使用相同的{{content}

请先创建一个
\u您的\u erb\u文件\u包含\u javascript\u code.erb

然后在slim文件
javascript:
part中:

#{ conditions ? (render 'your_erb_file_contain_javascript_code') : nil}

非常感谢。但是当你只需要一两行js代码时,你还会使用一个单独的文件吗?是的,这只是为了“最佳实践”的问题。但是,这仍然会使您的代码更加坚实、结构更好。为什么这是对特定slim/javascript问题的ERB/jQuery回答时可以接受的答案……请注意方法的attackcheck Rails api
清理

$.myapp.allProductIds
javascript:
  var all_product_ids = "#{existing_ids.to_json}";
  var products_json   = "#{@filter.data.to_json}";
javascript:
  var all_product_ids = #{raw existing_ids.to_json};
  var products_json   = #{raw @filter.data.to_json};
#{ conditions ? (render 'your_erb_file_contain_javascript_code') : nil}
javascript:
  var isAdmin = "#{current_user.admin? ? 1 : 0}";