单个页面上的多个表单

时间:2010-03-14 18:17:27

标签: ruby-on-rails forms actionview

我现在有一个仅限邀请测试版的应用。问题是,我无法让邀请系统工作。 :(

在我的根页面上有一个登录表单(工作正常),我正在尝试在同一页面上添加“请求邀请”表单。我开始通过将InviteRequest(ActiveRecord)的表单放在部分中,在“views”文件夹中为“InviteRequest”放置。该应用程序肯定称这部分,但我收到以下错误:

NoMethodError in User_sessions#new

Showing app/views/invite_request/_new.html.erb where line #2 raised:

undefined method `invite_requests_path' for #<ActionView::Base:0x25b3248>
Extracted source (around line #2):

1: <% @invite_request = InviteRequest.new() %>
2: <% form_for @invite_request do |ir| %>
3:  <%= ir.label :email %>
4:  <%= ir.text_field :email %>
5: <% end %>

我还阅读了我可靠的"Agile Web Development with Rails"副本中的“表单中的多个模型”部分,关于可能使用“fieldset”标记执行此操作,但不确定这是否是正确的方法。

THX。

1 个答案:

答案 0 :(得分:2)

您的form_for @invite_request正在尝试确定应该过帐表单结果的位置。它通过查看路径并找到与所需资源和操作相匹配的路线来完成此操作。在你的情况下,我猜你没有为InviteRequest设置路线。您需要为InviteRequest设置路由,或在form_for中指定要发布到的网址。

form_for @invite_request, :url => { :controller => 'application', :action => 'request_invite' } do |form|
  ...