ユーザー、イベント(ユーザーが作成したもの)を持つRailsアプリケーションのサンプルを作成しており、最終的にユーザーはこれらのイベントを購読/参加することができます。redirect_toの後にRailsビューがリフレッシュされない
私は、ユーザーがイベント行のlink_toボタンをクリックすると、イベントを購読したり購読を解除することができるテーブルを用意しています。 link_toはcurrent_pathへのリダイレクトを持つevent_controllerのメソッドを呼び出しますが、ボタンをクリックするとビューに何も起こりませんが、サーバーがビューをレンダリングするように見えます。
これは私がevent_controllerから呼び出していますが、Userのshowコントローラを使用しているためですか?
LOG:
Rendered users/show.html.erb within layouts/application (17.1ms)
ユーザー> show.html.erb
<% if current_user?(@user) %>
<td><%= link_to "Delete", e, method: :delete,
data: { confirm: "You sure?" } %></td>
<% else %>
<% if attendingEvent?(current_user, e.id) %>
<td><%= link_to "Not Going", events_remove_event_to_attend_path(event_id: e.id, event_owner_id:@user.id, current_path:request.fullpath), remote: true %></td>
<% else %>
<td><%= link_to "I Want To Go", events_add_event_to_attend_path(event_id: e.id, event_owner_id:@user.id, current_path:request.fullpath), remote: true %></td>
<% end %>
<% end %>
events_controller.rb
def add_event_to_attend
puts attend_params
puts request.fullpath
@attend = Attendee.new
@attend.event_id = (attend_params[:event_id])
@attend.user_id = current_user.id
if @attend.save
flash[:success] = "You created an assocations"
redirect_to(attend_params[:current_path])
puts 'saved'
else
flash[:danger] = "You did not create the event"
puts 'not saved'
end
end
def remove_event_to_attend
@event_to_delete = Attendee.find_by_user_id_and_event_id(current_user.id,params[:event_id])
@event_to_delete.destroy
redirect_to(attend_params[:current_path])
end
こんにちは。だから...あなたのコードに 'puts'を入れたことに気付きました...サーバのログ/端末の画面には何が表示されますか?第二に、あなたのrjsテンプレートには何がありますか?あなたはrjsテンプレートを持っていますか?あなたはリンクをリモートにしました。つまり、あなたはjsリクエストを送信しています。そしてブラウザは、そうするように指示するjを送り返すと、そのビューだけを変更します。代わりに、リンクから 'remote:true'を削除することでこれを非常に迅速に修正することができます。そして、リダイレクトはちょうど仕事になります... –