レンダリングされるビューに属していないコントローラーから.js.erb
をレンダリングするにはどうすればよいですか?
例:create.js.erb
からページビューにpost_controller
をレンダリングするにはどうすればよいですか?
post_controller.rb
def create
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render action: 'show', status: :created, location: @post }
format.js #{I think I need something in here?}
else
format.html { render action: 'new' }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
これを達成するにはいくつかの方法があるようです:
respond_to do |format|
format.js { :location => path_to_controller_method_url(argument) }
end
Ruby on Railsを使用してコントローラ内の別のjsファイルにどのように応答しますか?
respond_to do |format|
format.js {
:template => "classrooms/create_differently.js.erb",
:layout => false
}
end
代替ビューをRuby on Rails でレンダリング
respond_to do |format|
format.js { render :file => "/path/to/save.js.erb" }
end