2014-11-14 59 views
0

我遇到了從視圖中調用控制器中的(幫助程序)方法的問題。 我有一個輔助方法,我只是在link_to中調用,但我遇到了問題,我去尋找這個問題的答案,我發現你不能簡單地從視圖調用一個輔助方法,所以我試圖按照另一個答案的建議,但它仍然無法正常工作。從具有兩個參數的視圖調用(幫助程序)方法

我得到這個錯誤:

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

在視圖(頁/ 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

你沒叫它pages_associateplace。你叫associateplace。所以我想你link_to你應該脫下pages_部分,只留下:associateplace_path(@ activity.id,place.id)是否正確? – 2014-11-14 23:05:01

+0

我得到這個錯誤:沒有路由匹配[GET]「/pages/associateplace.5」 – MMrj 2014-11-14 23:07:55

+0

你有'put'路由併發送'get'請求。那些應該匹配。 – ptd 2014-11-14 23:10:57

回答

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 %> 
相關問題