为什么此表单不能从模型中获取数据?
问题描述:
我想要使用这种形式捕获电子邮件地址:为什么此表单不能从模型中获取数据?
我决定为此创建一个模型,并将视图和控制器用于仅服务于静态资产的不同模型(想想:简报注册)。
<%= 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
答
尝试:
<%= form_for @sighup, :url => {:controller => :pages, :action => :index} do |f| %>
,我希望你没有忘记
<% end %>
+0
谢谢!按预期工作。 – rhodee 2012-02-01 20:17:35
你设置的路线?将它们添加到问题中+请使用'url:pages_path'更新表单 – Damien 2012-02-01 19:26:38
您能否为SignUp显示您的类定义?我认为它需要ActiveModel – Webjedi 2012-02-01 19:30:00
+改变'f.email_field_tag'为'f.email_field' +保存'@ signup'在PagesController#create和'redirect_to'某处 – Damien 2012-02-01 19:31:19