需要我的AJAX调用才能将数据发送到控制器的私有方法

时间:2015-09-01 07:44:53

标签: ruby-on-rails ajax variables methods controller

我做了一个AJAX调用,将一个javascript变量发送到我的控制器中的一个方法。我的控制器看起来像这样:



def registration
      @fund = params[:funds]
      @index = params[:indexDecision]

      render json: 'ok'

end


def create
    @user = User.new(ticket_params)
    
    
    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render :show, status: :created, location: @user }

        Record.create(fund: @funds, weight: @weight)

      else
        format.html { render :new }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
      format.js
    end
  end




这是我的AJAX电话:



$.ajax({
	          url: "/record",
	          type: "POST",
	          data: {
	            funds: funds,
	            indexDecision: indexDecision
	          },
	          complete: function(){
	            console.log('Congrats');
	          }

	        });




这是我的配置路由文件:



resources :users

post '/record' => 'users#registration'




我的AJAX通话效果很好。但是现在我需要在create方法中使用实例变量@fund@index。我读到我必须使用私有方法,以便私有方法中的实例变量可用于其他方法。

我试过,但我有error 400 bad request

我怎样才能在create方法中提供@funds和@index变量?

1 个答案:

答案 0 :(得分:0)

您的代码可能看起来像这样(为简单起见,我忽略了HTML格式):

def registration
  user = User.new(ticket_params)
  if user.save
    fund = params[:funds]
    index = params[:indexDecision]
    Record.create(fund: funds, weight: weight)
    render json: 'ok'
   else
     # report error here
   end
end