2010-03-14 107 views
1

我有一个应用程序,它现在只在邀请测试版中。问题是,我无法获得邀请系统的工作。 :(单个页面上的多个表单

在我的根页面上有一个登录表单(它工作得很好),我试图在同一页面上添加一个“请求邀请”表单。我开始通过将表单放入InviteRequest 。ActiveRecord的)内的部分,在“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。

+0

如果相关,则从“user_session”控制器,“新”操作页面(即登录页面)调用此部分。所以,我也可能会遇到某种范围问题。 – jefflunt 2010-03-14 18:18:34

+0

*我也可能*只是将“请求邀请”功能放在自己的页面上,这会更简单,但如果不是多余的点击就好了。 :) – jefflunt 2010-03-14 18:21:20

回答

2

您的form_for @invite_request正试图找出表单结果的发布位置。它通过查看路线并找到与所需资源和操作相匹配的路线来实现此目的。在你的情况下,我猜你没有为InviteRequest设置路线。您需要为InviteRequest设置路由或指定要发布到form_for的URL。

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

哎呀,那很简单。谢谢! 我在我的routes.rb文件中有“map.resources invite_request”,并且在发布问题之前我会在更改后重新启动杂种。但显然我在路由/ URL映射中丢失了一些东西。 因此,我使用了指定的“:url => ...”。摇滚。谢谢。 – jefflunt 2010-03-14 18:43:28

相关问题