Я работаю над Rails Bates Railscast # 124: Бета-приглашения. У меня есть весь код на месте, но я не смог заставить все работать. Когда я пытаюсь отправить приглашение электронной почты, я получаю это сообщение.Ошибка маршрутизации Rails: приложение не может выполнить POST
Routing Error
No route matches [POST] "/invitations"
Если я плюрализую имя ресурса в Routes.rb, я получаю другую ошибку маршрутизации.
Routing Error
uninitialized constant InvitationsController
Что я делаю неправильно?
Это мой файл Routes.rb.
resources :users, :invitation
resources :sessions, :only => [:new, :create, :destroy]
match '/hunts', :to => 'hunts#index'
match '/signup/', :to => 'users#new'
match '/signin', :to => 'sessions#new'
match '/signout', :to => 'sessions#destroy'
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
root :to => "pages#home"
match ':controller(/:action(/:id(.:format)))'
end
И мой контроллер приглашения.
class InvitationController < ApplicationController
def new
@invitation = Invitation.new
end
def create
@invitation = Invitation.new(params[:invitation])
@invitation.sender = current_user
if @invitation.save
if logged_in?
Mailer.deliver_invitation(@invitation, signup_url(@invitation.token))
flash[:notice] = "Thank you, invitation sent."
redirect_to root_path
else
flash[:notice] = "Thank you, we will notify when we are ready."
redirect_to root_path
end
else
render :action => 'new'
end
end
end
Обновление: здесь запрашивается информация. Views/приглашение/html.erb
<%= form_for @invitation do |f| %>
<p>
<%= f.label :recipient_email, "Friend's email address" %><br />
<%= f.text_field :recipient_email %>
</p>
<p><%= f.submit "Invite!" %></p>
<% end %>
Пожалуйста, обновите свой вопрос с кодом вида –