Cri*_*ian 1 ruby-on-rails view coffeescript ruby-on-rails-3.1
在部分.js.coffee类型的视图中包含此代码(将其呈现为视图而不是资产):
<% if @followed_car_ids.present? %>
for car_id_and_path in <%= @followed_car_ids_and_paths.to_json %>
toggle_follow(car_id_and_path[0], true, car_id_and_path[1])
<% end %>
Run Code Online (Sandbox Code Playgroud)
在控制器中:
@followed_car_ids_and_paths = @followed_cars.map{|car| [car.id, url_for(current_user.car_subscriptions.find_by_car_id(car))]}
Run Code Online (Sandbox Code Playgroud)
请注意,是否在视图中放置地图(或收集)并不重要。如果我输入一个简单的字符串而不是也不起作用url_for(...
。
它给出了这个错误:
ActionView::Template::Error (Error: Parse error on line 1: Unexpected 'LOGIC'):
1: <% if @followed_car_ids.present? %>
2: for car_id_and_path in <%= @followed_car_ids_and_paths.to_json %>
3: toggle_follow(car_id_and_path[0], true, car_id_and_path[1])
4: <% end %>
app/views/general_ajax/_update_followed_cars.js.coffee:1:in `_app_views_general_ajax__update_followed_cars_js_coffee__3478461849674996439_70355260673980'
Run Code Online (Sandbox Code Playgroud)
当我=
从<%=
第2行中删除并在错误停止之前添加某种虚拟数组时:
for car_id_and_path in [1,2,3] <% @followed_car_ids_and_paths.to_json %>
Run Code Online (Sandbox Code Playgroud)
如果我使用平面数组(未使用map翻倍),则不会发生该错误:
for car_id_and_path in <%= @followed_car_ids %>
Run Code Online (Sandbox Code Playgroud)
都不是这样的:
for car_id_and_path in [[1, 'a'],[2, 'b'],[3, 'c']]
Run Code Online (Sandbox Code Playgroud)
我to_json
在coffeescript文件中将实例变量解析为json时遇到了相同的问题。
我通过添加以下内容解决了该问题html_safe
:
@instance_var.to_json.html_safe
归档时间: |
|
查看次数: |
607 次 |
最近记录: |