对于button_to,控制器操作应该是什么样的:remote =>真。
我是ajax reqs的新手所以我不知道我在做什么。据我了解,:remote => true将其设置为ajax请求。
<%= button_to "Generate Code", add_code_band_path(@band), :method => :post, :remote => true %>
我目前的行动:
def add_code
@band = Band.find(params[:id])
if user_signed_in?
@code = current_user.codes.build(params[:code])
respond_to do |format|
if @code.save
format.html { redirect_to @band, notice: 'Reward was successfully created.' }
format.json { render json: @band, status: :created, location: @band }
else
format.html { render action: "show" }
format.json { render json: @band.errors, status: :unprocessable_entity }
end
end
else
redirect_to @band, :alert => "Your Not Logged In! You must be logged in to create a code"
end
end
答案 0 :(得分:8)
您不能将redirect_to与Ajax调用一起使用。你应该做这样的事情来重定向(当使用ajax时):
render :js => "window.location = 'path_to_redirect_to'"
如果问题仍然存在,请在回复阻止时尝试包含format.js。
答案 1 :(得分:0)
如果页面刚如你所提到的那样刷新,请确保已包含并正确引用jQuery的不显眼的脚本编写适配器(如果你使用的是jQuery)。