rails 3 button_to:remote =>是的,控制器动作应该是什么样的

时间:2012-01-18 03:47:28

标签: ruby-on-rails button

对于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

2 个答案:

答案 0 :(得分:8)

您不能将redirect_to与Ajax调用一起使用。你应该做这样的事情来重定向(当使用ajax时):

render :js => "window.location = 'path_to_redirect_to'"

如果问题仍然存在,请在回复阻止时尝试包含format.js。

答案 1 :(得分:0)

如果页面刚如你所提到的那样刷新,请确保已包含并正确引用jQuery的不显眼的脚本编写适配器(如果你使用的是jQuery)。

https://github.com/rails/jquery-ujs