coffeescript中的ruby注入可以在各种条件下执行

coffeescript中的ruby注入可以在各种条件下执行,ruby,coffeescript,Ruby,Coffeescript,在RoR项目->视图->…->create.js.coffee 代码 $(“”)。附加到(“发票设备清单”) 始终执行,不依赖于之前的条件 在这个文件中,我想为用户显示一些消息,若他尝试创建数据库中已经存在的记录 如果从文件中删除该行,另一个js将逐行正常工作 所有文件: if "<% @invoice_equipment %>" $("<%= j(render partial: 'invoice_equipment/invoice_equipment', object:

在RoR项目->视图->…->create.js.coffee 代码

$(“”)。附加到(“发票设备清单”)
始终执行,不依赖于之前的条件

在这个文件中,我想为用户显示一些消息,若他尝试创建数据库中已经存在的记录

如果从文件中删除该行,另一个js将逐行正常工作

所有文件:

if "<% @invoice_equipment %>"
  $("<%= j(render partial: 'invoice_equipment/invoice_equipment', object: @invoice_equipment) %>").appendTo("#invoice_equipment_list")
  M.toast({html: "<%= I18n.t('invoice_equipment.added') %>", displayLength: 3000, classes: 'rounded'})
else
  M.toast({html: "<%= I18n.t('invoice_equipment.already_added') %>", displayLength: 3000, classes: 'rounded'})

$('#new_invoice_equipment')[0].reset()
$('#invoice_equipment_equipment').focus()
如果“”
$(“”)。附件(“发票设备清单”)
M.toast({html:,displayLength:3000,类:'rounded'})
其他的
M.toast({html:,displayLength:3000,类:'rounded'})
$('#新的_发票_设备')[0]。重置()
$(“#发票(设备)”).focus()
@设备发票可以是零或ActiveRecord。但在这两种情况下,如果@invoice\u设备为零,则RoR尝试渲染部分和下降

所以,我认为,注入的ruby代码在创建js文件之前执行


我是对的

这可能是因为您在条件应用程序中混合使用了javascript和rails模板。尝试重新格式化您的条件,使其不使用javascript
(如果
):

<% if @invoice_equipment.present? %>
  # Your code to render when the object is present
<% else %>
  # Your code to render when the object is missing
<% end %>


#对象存在时要渲染的代码
#缺少对象时要渲染的代码

这可能是因为您在条件应用程序中混合使用了javascript和rails模板。尝试重新格式化您的条件,使其不使用javascript
(如果
):

<% if @invoice_equipment.present? %>
  # Your code to render when the object is present
<% else %>
  # Your code to render when the object is missing
<% end %>


#对象存在时要渲染的代码
#缺少对象时要渲染的代码

Tnx以获取您的回复,但这不起作用。CoffeeScript无法编译为js,rails显示错误:
ActionView::Template::error(SyntaxError:[stdin]:3:1:缺少缩进)
Tnx以获得回复,但这不起作用。CoffeeScript无法编译为js,rails显示错误:
ActionView::Template::error(语法错误:[stdin]:3:1:缺少缩进)