我有一个在home.html.erb加载的页面,它由pages控制器控制。
在页面中,我有一个表单,这是一个单一的字段,将用于采取电子邮件地址。
我得到的错误是:
undefined method `signups_path'这是我的代码供你参考,我不确定如何确切地定义它所去的路线。
Home.html.erb包含此表单:
<%= form_for(@signup) do |f| %>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit "Enter" %>
</div>
<% end %>Pages控制器包含:
class PagesController < ApplicationController
def home
@title = "Open Domain - Liberate your domains from obscurity"
@signup = Signup.new
end
endSignup控制器包含:
class SignupController < ApplicationController
def show
@signup = Signup.new
end
def new
end
def create
@signup = Signup.new(params[:signup])
if @signup.save
else
render 'new'
end
end
endsignup模型包含:
类注册< ActiveRecord::Base
attr_accessible :email
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates(:email, :presence => true,
:length => {:maximum => 40},
:format => {:with => email_regex})
end任何帮助都将不胜感激。我有一种感觉,这是一个小问题,我是一个初学者。谢谢!
发布于 2012-05-05 10:30:47
form_for(@signup)正在尝试建立一个发布到的路由。如果您的routes.rb中没有命名路由,则会出现此错误。尝试:
routes.rb
post '/signup', :to=>"signup#create", :as=>"signups"这基本上是说:当请求到'/ signup‘路径的POST时,将其路由到注册控制器中的create操作。另外,使用名称"signups_path“来访问此路径的帮助器
发布于 2012-05-05 10:37:30
您可以使用以下代码替换您的form_for标记:
<%= form_for @signup, :url => { :action => "create" } do |f| %>这将张贴到“注册/创建”。
https://stackoverflow.com/questions/10458307
复制相似问题