用户中的NoMethodError#new#undefined method`simple_form_for'for#&lt;#<class:0x9f9b568>:0xaa02440&gt;“

时间:2015-12-16 04:59:58

标签: ruby-on-rails nomethoderror

我在view / users中的new.html.erb代码:

 <h1>Sign Up</h1>

 <%= simple_form_for(@user) do |f| %>
 <%= f.input :username %>
 <%= f.input :password %>
 <%= f.input :password_confirmation %>
 <%= f.button :submit %>
 <% end %>

这是错误:

 undefined method `simple_form_for' for #<#<Class:0x9f9b568>:0xaa02440>

我知道这个错误要求:

 def simple_form_for
 end

但问题在于放在哪里。 这也是我的users_controller.rb:

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

     def create
         @user = User.new(params[:user])
         if @user.save
             redirect_to @user, notice: 'User was successfully created.'
         else
             render action: "new"
         end
     end

     def show
         @user = User.find(params[:id])
     end
 end

5 个答案:

答案 0 :(得分:3)

这根本不是它所期待的。

simple_form_for表示您的应用期望使用简单表单(https://github.com/plataformatec/simple_form)gem,它为您的表单提供了使用方法。您应该通过将gem添加到Gemfile中来安装gem,或者重写您的表单以使用Rails表单助手而不是简单表单。

答案 1 :(得分:1)

如果找不到方法,但您已经安装了gem。在这种情况下,我想你忘了重启服务器。重新启动服务器,它将工作。

答案 2 :(得分:1)

Gemfile:gem'bootstrap-sass'
         gem'simple_form'

你必须有一个bootstrap设置 “rails生成simple_form:install --bootstrap”

答案 3 :(得分:0)

你的proplem是rails simple_form_for你可以试试form_for 并阅读更多http://guides.rubyonrails.org/getting_started.html

答案 4 :(得分:0)

错误基本上是说simple_form_for方法不可用(如您所知)。

解决方案是确定该方法的 以及如何使用该方法。

Simple Form

错误是由简单表单在您的应用中无法使用引起的。

要包含它,您只需添加gem:

#Gemfile
gem 'simple_form'

-

如果您没有安装simple_form gem,您将能够通过使用Rails'form_for来解决这个问题:

<%= form_for @user do |f| %>
   <%= f.text_field     :username %>
   <%= f.password_field :password %>
   <%= f.password_field :password_confirmation %>
   <%= f.submit %>
<% end %>