RoR应用程序中的未定义方法`simple_form_for'

时间:2012-04-04 23:17:26

标签: ruby-on-rails ruby-on-rails-3 simple-form

我一直在浏览堆栈溢出,我注意到很多人使用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?我是否需要在用户控制器中包含帮助程序?

5 个答案:

答案 0 :(得分:53)

你重启了服务器吗? 在安装gem或插件后,请始终牢记。 始终重新启动服务器

答案 1 :(得分:6)

这一切都是因为在安装了诸如simple_form,devise等新库之后你没有重新启动你的服务器。

尝试停止服务器并重新启动它。你的代码很完美!我好几次遇到过这种情况。解决方案就是重新启动服务器!。

答案 2 :(得分:0)

您必须在安装simple_form gem之后重新启动服务器。

答案 3 :(得分:0)

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

gem 'simple_form'

bundle install

答案 4 :(得分:0)

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

  1. 检查simple_form宝石是否正确安装

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

  2. 如果输出为空

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

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

  3. 如果输出不为空

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

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

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

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

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