我在从视图中调用控制器中的(辅助)方法时遇到问题。 我有一个帮助方法,我只是在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
答案 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 %>