29

我一直在浏览堆栈溢出,我注意到很多人使用 simple_form 来让他们的生活更轻松。

我想试一试,所以我将 gem 添加到我的 gem 文件 ( gem 'simple_form') 中并发送:

rails generate simple_form:install --bootstrap

阅读安装消息后,我使用自述文件中的示例代码创建了一个视图:

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

不幸的是,我一尝试加载页面就收到此错误:

undefined method `simple_form_for' for #<#<Class:0x69dd688>:0x6903ac8>

是什么赋予了?怎么连方法都认不出来?我觉得我在这里很简单地错过了一些东西。可能是因为我使用的是 bootstrap-sass 吗?我需要在我的用户控制器中包含一个助手吗?

4

5 回答 5

58

你重启你的服务器了吗?请始终记住,在安装 gem 或插件之后。总是重启你的服务器

于 2013-04-11T03:16:50.093 回答
7

这完全是因为您在安装了 simple_form、devise 等新库后没有重新启动服务器。

尝试停止您的服务器并重新启动它。你的代码是完美的!我遇到过几次。解决方案只是重新启动服务器!。

于 2014-12-13T12:53:42.593 回答
3

安装simple_formgem 后必须重新启动服务器。

于 2019-07-14T05:22:25.880 回答
0

对于任何绝对的初学者。如果您忘记安装,就会出现此错误simple_form。要纠正,请将其添加到您的 Gemfile

gem 'simple_form'

bundle install

于 2020-08-09T06:55:39.353 回答
0

总结上面的所有可能性,希望这个列表对其他宝石也有用。

  1. 检查simple_formgem 是否安装正确

    Gemfile在和中找到宝石Gemfile.lock。另一种方法是在终端中运行此命令:bundle list | grep simple_form

  2. 如果输出为空

    可能simple_form尚未安装在您的项目中。由于 gem 是一个外部 gem,它不包含在 Rails 框架中。Rails 有自己的表单库(又名form_withform_for)。

    要添加simple_form到您的项目中,请打开 Gemfile 并添加gem 'simple_form',然后在终端中运行命令bundle install

  3. 如果输出不为空

    检查您是否已经重新启动服务器。

  4. 重启服务器后,仍然无法访问SimpleForm常量

    检查 gem 是否require: false在 Gemfile 中设置为。如果是这样,请删除此部分并运行bundle install.

  5. rails console您可以通过键入或rails c在终端中检查 gem 是否从 rails 控制台加载。

    加载控制台后,键入SimpleForm并按 Enter。如果出现一些抱怨常量未定义的错误,请参阅前面的步骤来修复。

于 2020-08-09T09:19:22.197 回答