1

我的 index.html.erb 中有以下 link_to。每当我点击链接时,它都会在retrieval_requests 表中创建一条新记录,但由于某种原因,user_id 和package_id 没有保存。

我不知道该怎么做。我将不胜感激任何帮助。

谢谢。

index.html.erb

.
.
<%= link_to "Retrieve this package", retrieval_requests_path(user_id: current_user.id, package_id: item.package.id), :method => :post %>
.
.

检索请求控制器.rb

class RetrievalRequestsController < ApplicationController
  def index
      @items = Item.where(:user_id => current_user.id)
  end

  def create
    @retrieval_request = RetrievalRequest.new(params[:retrieval_request])
    if @retrieval_request.save
      redirect_to retrieval_requests_path, notice: "Successfully created retrieval request."
    else
      render :new
    end
  end
end
4

1 回答 1

1

由于您使用的是链接而不是表单,因此您将不得不使用各个参数创建记录。

因此params[:retrieval_request],不要使用(不存在),而是使用params[:user_id]and params[:package_id]

当您将参数传递给链接助手时,例如:

retrieval_requests_path(user_id: 3, package_id: 26)

它将创建一个如下所示的 URL,具体取决于您设置路由的方式:

"/retrieval_requests/3/26"
# or with no user_id or package_id set in routes:
"/retrieval_requests?user_id=3&package_id=26"

然后在您的控制器中,您需要分别获取这些参数。

于 2013-05-19T14:12:54.203 回答