用户#news中的Ruby on Rails NoMethodError

时间:2016-02-18 07:05:08

标签: ruby-on-rails ruby

我在用户控制器视图中的Users#new中遇到NoMethodError。以下是观点:

<h1>new</h1>
<%= form_for @user do |f| %>
<p>
    <%= f.label :username %> <br />
    <%= f.text_field :title %>
</p>

<p>
    <%= f.label :email %> <br />
    <%= f.email_field :email %>
</p>
<p>
    <%= f.label :password %> <br />
    <%= f.password_field :password %>
</p>
<% end %>

这是放在app / views / users / new.html.erb中 这是我的控制器:

class UsersController < ApplicationController
 def new
    @user = User.new
 end
end

这是我的路线:

      signup GET    /signup(.:format)            users#new

错误:

undefined method `users_path' for #<#<Class:0x007f22fe85bb00>:0x007f22fe827058>

提前致谢。

3 个答案:

答案 0 :(得分:0)

由于您没有使用传统资源,因此您必须提供form_for的网址。

<%= form_for @user, url: signup_path do |f| %>

答案 1 :(得分:0)

您已为/signup添加了自定义网址助手,即signup_path

您需要在form代码中指定:

<%= form_for @user, url: signup_path do |f| %>

答案 2 :(得分:0)

我认为应该是

new_user_path

但是如果使用

rake routes

在命令行中或浏览到不存在的页面,您将看到已注册的路径列表。

希望有所帮助