Ruby on rails Rails 3.1中的路由问题

Ruby on rails Rails 3.1中的路由问题,ruby-on-rails,email,routes,Ruby On Rails,Email,Routes,嘿,我正试图发送一个链接点击电子邮件 这是我的链接: <%=link_to 'Hello', {:action => :contact}%> 我的邮递员: class Contact < ActionMailer::Base default from: "****" default to: "****" def contact_form mail(:subject => "Registered") end end 然而,我得到的错误

嘿,我正试图发送一个链接点击电子邮件

这是我的链接:

<%=link_to 'Hello', {:action => :contact}%>
我的邮递员:

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

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


end
然而,我得到的错误

未知操作

找不到PagesController的操作“show”


这件事让我毛骨悚然,我看不出有什么问题

这是因为您的路由正在定义PUT请求,而指向的链接正在发出GET请求。您可以将路由更改为使用
get
,或者将link\u更改为button\u并指定PUT方法。我个人会选择后者,因为让GET请求这样做是不好的做法

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

更改以下行:

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

:put%>

谢谢,但这只是将错误更改为无法为PagesController而不是show找到操作“update”
<%= button_to 'Hello', contact_pages_path, :method => :put %>
<%=link_to 'Hello', {:action => :contact} %>
<%=link_to 'Hello', contact_pages_path, :method => :put %>