Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用户中的命名错误“新建”;未定义的方法'的“简单形式”;对于#<#&书信电报;类别:0x9f9b568>;:0xaa02440>&引用;_Ruby On Rails_Nomethoderror - Fatal编程技术网

Ruby on rails 用户中的命名错误“新建”;未定义的方法'的“简单形式”;对于#<#&书信电报;类别:0x9f9b568>;:0xaa02440>&引用;

Ruby on rails 用户中的命名错误“新建”;未定义的方法'的“简单形式”;对于#<#&书信电报;类别:0x9f9b568>;:0xaa02440>&引用;,ruby-on-rails,nomethoderror,Ruby On Rails,Nomethoderror,视图/用户中的My 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 %> <% en

视图/用户中的My 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 %>
但问题是把它放在哪里。 这也是我的用户\u 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
class UsersController
这根本不是它所期望的


simple\u form\u for
意味着您的应用程序希望有simple form()gem可用,它为您的表单提供了该方法。您应该通过将gem添加到gem文件中来安装gem,或者重写表单以使用Rails表单帮助程序而不是简单表单。

您的问题是Rails无方法
简单表单
您可以尝试使用
表单

请阅读更多

错误基本上是说方法的
simple\u form\u不可用(如您所知)

解决方案是确定该方法是什么,以及需要如何使用


此错误是由于简单表单在应用程序中不可用造成的

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

#Gemfile
gem 'simple_form'
--

如果您没有安装
simple\u form
gem,您可以使用Rails解决此问题,Rails与之没有太大区别:

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


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

Gemfile:gem'bootstrap sass'
创业板“简单形式”

您必须具有引导设置
“rails生成简单表单:安装--引导”

我假设您正在尝试使用这个gem?:。如果是这样的话,按照描述将其正确地包含在您的GEM文件中应该可以让它正常工作。您不必自己定义此方法。我尝试了使用form_for代替simple_form_for的方法,结果显示:
undefined method'users_path'for#
您有哪些路由?我确实安装了gem,但安装了bootstrap,它是您应用程序的一部分,也就是说,包含在你的
gem文件中
?嗯。你能试着从
中删除
=
吗?还是一样。。。没有区别
#Gemfile
gem 'simple_form'
<%= form_for @user do |f| %>
   <%= f.text_field     :username %>
   <%= f.password_field :password %>
   <%= f.password_field :password_confirmation %>
   <%= f.submit %>
<% end %>