param [:date]!= nilの場合は、format.htmlをレンダリングし、nilでない場合は.jsをレンダリングします。Rails - コントローラーでajaxリクエストを使ってhtmlをレンダーする
私のlink_to:
<%= link_to place_path(place, date: params[:date]), id: "#{place.id}", remote: true, authenticity_token: true, data: { title: place.city }, target: "_blank" do %>
マイコントローラ:
class PlacesController < ApplicationController
def show
if params[:date] == nil
respond_to do |format|
format.html {
preparation_of_instance_variables_for_show_view
}
format.js { }
end
else
respond_to do |format|
format.html {
preparation_of_instance_variables_for_show_view
}
format.js {
render format: 'html' # <= where I want to render format.html
}
end
go_to_show_view
end
end
private
def preparation_of_instance_variables_for_show_view
@place = Place.find_by_id(params[:id])
if params[:date].present?
@guests = Booking.accepted.where(place: @place, date: Date.parse(params[:date])).map(&:guest)
end
end
ただこの場合のためにformat.htmlにリダイレクトするにはどうすればできますか?
私はshow.js.erbを持っていると私は最初のケースにしていますが、私は後者の場合のためにshow.html.erbをレンダリングしたい場合、私はそれをレンダリング:条件があればあなたの周りrespond_toをラップする必要がありいずれかの方法jsのリクエスト –