Этот вопрос является продолжением предыдущего вопроса: Ruby on Rails: пользовательские действия
Как продолжение, какой будет синтаксис использования настраиваемого действия в form_for? Для моего приложения у меня есть часть с именем _invite_form.html.erb, и я настроил форму, чтобы иметь спецификацию: url, которая, как я думал, свяжет форму с действием приглашения на контроллере Users:
<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"}"
В моем файле rout.rb я включил соответствующие строки:
resources :users do
member do
get :invite
post :invite
end
end
Почему маршрут не работает? Как изменить эти файлы, чтобы форма использовала действие «Пригласить» на контроллере «Пользователи»?
** Забыл упомянуть ранее: я определил приглашенных в хелпере Users: users_helper.rb:
module UsersHelper
def invited
@invited = User.new(params[:user])
end
end