この質問は、前の質問: Ruby on Rails: Custom actionsのフォローアップです。
フォローアップとして、form_for でカスタム アクションを使用する構文は何ですか? 私のアプリでは、_invite_form.html.erb というパーシャルがあり、フォームを :url 仕様に設定して、フォームをユーザー コントローラーの招待アクションにリンクすると考えました。
<div id = "invite_form">
<h1>Invite</h1>
<%= form_for(invited, :url => invite_user_path) do |f| %>
<div class="field">
<%= f.text_field :email, :class => "inputform round", :placeholder => "email" %>
</div>
<div class="actions">
<%= f.submit "Invite", :class => "submit_button round" %>
</div>
<% end %>
</div>
このパーシャルは特定のページで呼び出され、次のエラーが表示されます。
"No route matches {:action=>"invite", :controller=>"users"}"
私の routes.rb ファイルには、適切な行が含まれています。
resources :users do
member do
get :invite
post :invite
end
end
ルートが機能しないのはなぜですか?これらのファイルを変更して、フォームがユーザー コントローラで「招待」アクションを使用するようにするにはどうすればよいですか?
** 前に言及するのを忘れていました: ユーザー ヘルパー: users_helper.rb で招待を定義しました:
module UsersHelper
def invited
@invited = User.new(params[:user])
end
end