Ryan Bates の Railscast #124: Beta Invitations に取り組んでいます。すべてのコードを配置しましたが、実際に機能させることができませんでした。招待メールを送信しようとすると、このメッセージが表示されます。
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
更新: 要求された情報は次のとおりです。ビュー/招待状/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 %>