Проблемы маршрутизации в Rails 3.1 - PullRequest
0 голосов
/ 19 января 2012

Эй, я пытаюсь отправить электронное письмо по щелчку ссылки ...

Вот моя ссылка:

<%=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

Однако я получаю ошибку ...

Неизвестное действие

Не удалось найти действие 'show' для PagesController

Потянув меня за волосы, не могу понять, в чем проблема!

Ответы [ 2 ]

0 голосов
/ 19 января 2012

изменить следующую строку:

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

Для

<%=link_to 'Hello', contact_pages_path, :method => :put %>
0 голосов
/ 19 января 2012

Это потому, что ваш маршрут определяет запрос PUT, но link_to делает запрос GET. Вы можете либо изменить маршрут на get, либо изменить link_to на button_to и указать метод PUT. Я лично пошел бы с последним, так как это плохая практика, когда запрос GET делает это.

<%= button_to 'Hello', contact_pages_path, :method => :put %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...