这个问题是对上一个问题的跟进:Ruby on Rails:自定义操作
作为后续,在 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