我在rails中制作了一个简单的电子邮件注册表单,但我遇到了这个错误。
我已经在电子邮件模型中生成了只有电子邮件字段的控制器电子邮件和模型电子邮件。
这是我的控制器,方法是新的
class EmailsController < ApplicationController
def new
@email = Email.new
end
end
下面是我的观点非常简单
<h2>Register Email</h2>
<% form_for(@email) do |f| %>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
现在我已经使用rake路线
定义了路线在我在控制器和html页面添加代码之前一直正常工作
在routes.rb中 我为root定义了路径
root 'emails#new'
我的佣金路线看起来像这样
emails_new GET /emails/new(.:format) emails#new
home_index GET /home/index(.:format) home#index
root GET / emails#new
现在我收到此错误
ActionView::Template::Error (undefined method `emails_path' for #<#<Class:0x007f25edc36a58>:0x007f25edc4ffa8>):
App 4103 stderr: 1: <h2>Register Email</h2>
App 4103 stderr: 2:
App 4103 stderr: 3: <% form_for(@email) do |f| %>
App 4103 stderr: 4: <div class="field">
App 4103 stderr: 5: <%= f.label :email %><br />
App 4103 stderr: 6: <%= f.text_field :email %>
App 4103 stderr: app/views/emails/new.html.erb:3:in `_app_views_emails_new_html_erb___4438819380742713977_69900439838140'
任何帮助谢谢
答案 0 :(得分:2)
抱歉,我无法发表评论。您在form_for中缺少=
。
必须是<%= form_for ...%>
希望得到这个帮助。
答案 1 :(得分:0)
您没有实际创建email
记录的路线。您可以使用resources
:
resources :emails, only: [:new, :create] # <-- list of actions you need
此外,当然,您应该使用form_for
添加<%=
来电,以便将此调用的结果放入HTML中。