1

私はフォームを持っています

<%= form_for([@group, lesson], remote: true) do |f| %>
            <tr id='<%= lesson.id%>' >
                <td><%= f.text_field :time %></td>
                <td><%= f.text_field :day %></td>
                <td><%= f.text_field :subject %></td>
                <td><%= f.text_field :teacher %></td>
                <td><%= f.text_field :room %></td>
                <td><%= f.submit 'Update'%></td>
                <td><%= link_to 'Delete', [lesson.group, lesson], remote: true,method: :delete%></td>
            </tr>
        <%end%>

コントローラー

def update

@lesson = @group.lessons.find(params[:id])

@lesson.update_attributes(params[:lesson])

respond_to do |format|
    if @lesson
        format.html { redirect_to edit_group_path(@group), notice: 'Succesfully updated lesson' }
        format.js { render :json => @lesson, location: edit_group_path(@group) }
        format.json { render json: @lesson}
    else
        format.html { redirect_to edit_group_path(@group), notice:'Error!' }
        format.json { render json: @lesson }
    end
end
end

そしてJS

$(document).ready ->
    $('#new_lesson').on("ajax:success", (e, data, status, xhr) ->
        $('.notice').append data
        ).bind "ajax:error", (e, xhr, status, error) ->
            $('.notice').append '<p>ERROR:'+error+'</p>'

    $(".edit_lesson").on("ajax:success", (e, data, status, xhr) ->
        $('.notice').append data
        ).bind "ajax:error", (e, xhr, status, error) ->
            $('.notice').append '<p>ERROR:'+error+'</p>'

リクエストはうまくいき、ボタンをクリックするとエントリが更新されます。ただし、常に構文エラーが「.notice」にスローされます。

SyntaxError:予期しないトークン :

インターネットで見つけた他の解決策は役に立たなかった

4

1 に答える 1

3

エラーに関する詳細情報 (どのファイルとどの関数がそれを呼び出しているか) を確認する必要がありますが、コントローラーの次の行に問題がある可能性があります。

format.js { render :json => @lesson, location: edit_group_path(@group) }

まず、JSON を JS リクエストに渡すのはなぜですか? JSON データを戻したい場合は、通常、データ型を JSON として使用します。JSON を API などとして使用したことがある場合は、それを確認する必要があります。

個人的には、次の行をテストします。

format.js 

次に、update.js.erbこれを使用します:

alert(<%=j @lesson %>);

これにより、その行に問題があるかどうかがテストされます。そうであれば、システムを少し調整する必要があることを意味しますが、結果を返信していただければ、より良い回答を作成できます

于 2013-10-26T12:32:09.727 に答える