2012-01-19 149 views
0

嘿我想上的鏈接的點擊發送電子郵件......路由問題3.1

這裏是我的鏈接:

<%=link_to 'Hello', {:action => :contact}%> 

在我的控制,我有:

def contact 
    Contact.contact_form.deliver 
end 

我梅勒:

class Contact < ActionMailer::Base 
    default from: "****" 
    default to: "****" 

    def contact_form 
    mail(:subject => "Registered") 
    end 


end 

,並在我的路線我:

resources :pages do 
    put :contact, :on => :collection 
    end 

但是我得到的錯誤...

未知的動作

行動 '秀' 不能爲PagesController

找到拉我的頭髮在這一點出來,不能看到問題是什麼!

回答

0

這是因爲您的路由正在定義PUT請求,但link_to正在發出GET請求。您可以更改路線以使用get,或者將link_to更改爲button_to並指定PUT方法。我個人會選擇後者,因爲有一個GET請求是不好的做法。

<%= button_to 'Hello', contact_pages_path, :method => :put %> 
+0

感謝,但這只是改變了錯誤的行動「更新」無法找到PagesController,而不是秀 –

+0

對不起,請原諒我的工作!謝謝! –

0

更改以下行:

<%=link_to 'Hello', {:action => :contact} %> 

<%=link_to 'Hello', contact_pages_path, :method => :put %>