0

我对整个 ruby​​ on rails 的东西还是很陌生,虽然我读过你可以轻松地执行 ajax 请求。我想要做的是在数据库表中添加一个新行,并从中传递一些变量。

我目前拥有的是

%li= link_to image_tag('trans.gif', :border => 0, :size => '16x16', :class => 'i-16-tick'), availabilities_path(:team_id => schedule.team_id, :user_id => current_user, :schedule_id => schedule.id), :remote => true, :method => :post, :title => 'Accept', :rel => 'tooltip-html'

控制器代码

`# POST /availabilities # POST /availabilities.json def create @availability = Availability.new(params[:availability])

respond_to do |format|
  if @availability.save
    format.html { redirect_to @availability, :notice => 'Availability was successfully created.' }
    format.json { render :json => @availability, :status => :created, :location => @availability }
  else
    format.html { render :action => "new" }
    format.json { render :json => @availability.errors, :status => :unprocessable_entity }
  end
end

结束`

虽然它如何知道要传递给数据库的变量?

这就是目前正在发生的事情

Processing by AvailabilitiesController#create as HTML Parameters: {"schedule_id"=>"18", "team_id"=>"1", "user_id"=>"38"} User Load (1.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = 38 LIMIT 1 (0.4ms) BEGIN SQL (20.1ms) INSERT INTO "availabilities" ("available", "created_at", "schedule_id", "team_id", "updated_at", "user_id") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["available", nil], ["created_at", Tue, 18 Sep 2012 23:07:26 EST +10:00], ["schedule_id", nil], ["team_id", nil], ["updated_at", Tue, 18 Sep 2012 23:07:26 EST +10:00], ["user_id", nil]] (10.5ms) COMMIT

4

2 回答 2

1

如果您想向服务器传递多个变量,请将它们包含在 http 请求中。对于 AJAX 请求和常规请求都是如此。例如:

<%= link_to 'Send data', accept_availabilty( player, :my_variable => value1, :my_variable => value2), :remote => true %>

通常,虽然提交更复杂,但您会希望使用远程表单,而不仅仅是一个简单的链接。

于 2012-09-18T12:50:26.077 回答
0

如果您想将信息传递给您的 Rails 应用程序,您需要将

:remote => true

到 form_for 标签上,然后您的控制器将能够将这些参数传递给您的模型。

于 2012-09-18T11:55:49.617 回答