Rails 4无法将Params从View传递给Controller

时间:2015-11-30 06:42:30

标签: ruby-on-rails ruby-on-rails-4

我有一个课程#show视图,我正在尝试将课程ID传递给我的订单控制器。

在我的课程#show中我有这个:

<%= link_to 'Buy', new_purchase_path(params[:id=>@course.id]) %>

我也试过了:

<%= link_to 'Buy', {:controller => :purchases, :action => :new}, :params => {:id => @course.id} %>

然而,我一直收到错误:

Couldn't find Course with 'id'=

在purchases_controller中,我有新的:

def new
  @purchase = Purchase.new
  @course = Course.find(params[:id])
end

我做错了什么?

1 个答案:

答案 0 :(得分:1)

要传递链接中的内容,您必须为其命名。

仅传递id就像这样:

new_purchase_path(id: @course.id)

我会通过course_id:

new_purchase_path(course_id: @course.id)

然后你就能从params中找到它:

params[:course_id]