意外 -> 用户选择.on 'valuesChanged' ->



我从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()

最新更新