从具有两个参数的视图调用(辅助)方法

时间:2014-11-14 22:43:26

标签: ruby-on-rails

我在从视图中调用控制器中的(辅助)方法时遇到问题。 我有一个帮助方法,我只是在link_to中调用,但我遇到了问题,我去寻找这个问题的答案,我发现你不能简单地从一个视图调用帮助方法,所以我试图跟随另一个答案的建议,但它仍然无法正常工作。

我收到了这个错误:

No route matches [GET] "/pages/associateplace.5"

在视图(pages / associate_place_to_activity.html.erb)中我有这个:

<%= link_to "Choose Place", pages_associateplace_path(@activity.id, place.id), :class => 'btn btn-default btn-xs' %>

在控制器(pages_controller)中我有这个:

 def associateplace
    @activity_id = params[:activity_id]
    @place_id = params[:place_id]
    Activity.find(activityid).place_id=placeid
    redirect_to Activity.find(activityid)
  end

“ 在routes.rb我有这个:

put 'pages/associateplace/:activity_id/:place_id' => 'pages#associateplace', as: :associateplace

1 个答案:

答案 0 :(得分:1)

您没有将其称为pages_associateplace。你打电话给associateplace。所以在你的link_to中你应该取下pages_部分而只留下:associateplace_path(@ activity.id,place.id)

还有一件事。你已经创建了一个PUT路线。但是在link_to中,您需要指定它是您想要的PUT,因为GET是默认值。所以你需要写:

<%= link_to "Choose Place", associateplace_path(@activity.id, place.id), method: :put %>