2012-02-01 72 views
0

我想要使用這種形式捕獲電子郵件地址:爲什麼此表單不能從模型中獲取數據?

我決定爲此創建一個模型,並將視圖和控制器用於僅服務於靜態資產的不同模型(想想:簡報註冊)。

<%= form_for (@signup) do |f| %> 
<% if @signup.errors.any? %> 
    <div id="error_explanation"> 
    <p><%= pluralize(@signup.errors.count, "error") %> prohibited this post from being saved:</p> 

    <ul> 
    <% @signup.errors.full_messages.each do |user| %> 
    <li><%= user %></li> 
    <% end %> 
    </ul> 
    </div> 
<% end %> 

<div class="field"> 
    <%= f.label :email_address %><br /> 
    <%= f.email_field_tag :email_address %> 
</div> 

<div class="actions"> 
    <%= f.submit %> 
</div> 

如何獲得這種形式的工作?我得到undefined method signups_path for #<#<Class:0x00000004f1feb0>:0x00000004f09a98>異常,這是可以理解的(它按照慣例尋找SignupsController)。

但我希望窗體顯示在一個單獨的控制器中,我稱之爲PagesController並將其發送到註冊模型。

附加信息:

我試圖通過網址:pages_path形式,並得到同樣的異常。

# view inside PagesController 
<div class="four columns"> 
    <%= render 'form' %> 
</div> 

#stub of model 
class PagesController < ApplicationController 
def index 
    @signup = Signup.new 
end 

def create 
@signup = Signup.new(params[:signup]) 
end 
end 
+0

你設置的路線?將它們添加到問題中+請使用'url:pages_path'更新表單 – Damien 2012-02-01 19:26:38

+0

您能否爲SignUp顯示您的類定義?我認爲它需要ActiveModel – Webjedi 2012-02-01 19:30:00

+0

+改變'f.email_field_tag'爲'f.email_field' +保存'@ signup'在PagesController#create和'redirect_to'某處 – Damien 2012-02-01 19:31:19

回答

0

嘗試:

<%= form_for @sighup, :url => {:controller => :pages, :action => :index} do |f| %> 

,我希望你沒有忘記

<% end %> 
+0

謝謝!按預期工作。 – rhodee 2012-02-01 20:17:35

相關問題