Rails link_to onclick javascript中的ruby变量

Mit*_*ran 6 ruby-on-rails

什么是错误的这句话它显示语法错误

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id +");return false;"%>
Run Code Online (Sandbox Code Playgroud)

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion();return false;"%>
Run Code Online (Sandbox Code Playgroud)

正确生成以下代码

<a title="Delete" onclick="removeQuestion();return false" class="action remove" href="/quizzes/remove/1"><img src="/images/cancel.png?1290165811" alt="Cancel"></a>
Run Code Online (Sandbox Code Playgroud)

Chi*_*tan 10

你写的是什么

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id +");return false;"%>
Run Code Online (Sandbox Code Playgroud)

这个炸弹因为question.id是一个Fixnum.你会得到的can't convert Fixnum into String TypeError.

如何解决这个问题

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id.to_s +");return false;"%>
Run Code Online (Sandbox Code Playgroud)

要么

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion('#{question.id}');return false;"%>
Run Code Online (Sandbox Code Playgroud)

这会将问题ID作为字符串发送到您的removeQuestion javascript函数.

要么

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion(#{question.id});return false;"%>
Run Code Online (Sandbox Code Playgroud)

这会将问题ID作为整数发送到您的removeQuestion javascript函数.