我从challengers.coffee
运行这段代码,我得到了错误ActionView::Template::Error (SyntaxError: [stdin]:3:31: unexpected ->
,我能够进一步提炼(参见第3行注释):
$(document).ready ->
userSelect = $('#change-challenge-options')
userSelect.on 'valuesChanged' ->
currentUserId = $('#current-challenge-options').data('current-user-id')
if(currentUserId == userSelect.val())
$('#current-user-challenges').show()
$('#challenged_user_challenges').hide()
else
$('#challenged_user_challenges').show()
$('#current-user-challenges').hide()
决斗者/_dueler_fields.html.erb
<%= f.select :user_id, User.order(:name).map { |user| [user.full_name, user.id] }, include_blank: true, id: "change-challenge-options", data: {current_user_id: current_user.id } %> will
<%= collection_select(:dueler, :challenge_id, @current_user_challenges, :id, :full_challenge, include_blank: true, id: "current-user-challenges") %>
<%= collection_select(:dueler, :challenge_id, @challenged_user_challenges, :id, :full_challenge, include_blank: true, id: "challenged_user_challenges") %>
->
前缺少逗号。代码应该看起来像这样(我还删除了if
语句中的括号):
$(document).ready ->
userSelect = $('#change-challenge-options')
userSelect.on 'valuesChanged', ->
currentUserId = $('#current-challenge-options').data('current-user-id')
if currentUserId == userSelect.val()
$('#current-user-challenges').show()
$('#challenged_user_challenges').hide()
else
$('#challenged_user_challenges').show()
$('#current-user-challenges').hide()