我一直在浏览堆栈溢出,我注意到很多人使用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?我是否需要在用户控制器中包含帮助程序?
答案 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)
总结上面的所有可能性,希望该列表对其他宝石也有用。
检查simple_form
宝石是否正确安装
在Gemfile
和Gemfile.lock
中找到宝石。另一种方法是在终端中运行以下命令:bundle list | grep simple_form
如果输出为空
项目中可能尚未安装simple_form
。由于该宝石是外部宝石,因此它不包含在Rails框架中。 Rails有自己的表单库(又名form_with
和form_for
)。
要将simple_form
添加到项目中,请打开Gemfile并添加gem 'simple_form'
,然后在终端机bundle install
中运行命令。
如果输出不为空
检查是否已重新启动服务器。
重新启动服务器后,您仍然无法访问SimpleForm
常量
检查Gemfile中的gem是否设置为require: false
。如果是这样,请删除此部分并运行bundle install
。
您可以通过在终端中键入rails console
或rails c
来检查是否从rails控制台加载了gem。
在加载控制台之后,键入SimpleForm
并按Enter。如果出现一些错误,抱怨常量未定义,请参考前面的步骤进行修复。