【发布时间】:2012-09-29 23:00:00
【问题描述】:
这是我的问题:
我有一个项目,我正在尝试将 Gems 本地安装到该项目。例如,如果我从 Gemfile 安装设计,然后运行捆绑安装,它不会将任何控制器放入项目的控制器目录中。相反,我必须在 RVM 目录中寻找特定 gem 的控制器,将它们复制到我的项目中,然后从那里开始编写我的项目。
有什么建议吗?
【问题讨论】:
-
Bundle 不应将 gem 代码安装到您的应用程序代码中。在 Devise 的情况下,它是控制器、视图、模型以及任何其他将保留在 gem 本身中的东西。如果您需要覆盖某些内容,例如视图,Devise 有一个内置生成器,可以将视图放入您的应用程序
rails generate devise:views。 Gems 可以将库代码与您自己的代码隔离开来。您是否有理由需要访问 Devise 的控制器?根据经验,您不应该直接更改 Devise 的代码。 -
那么例如,应该与 Devise 安装一起提供的 users_controller 不应该在我的应用程序控制器中?这很奇怪......
-
是的,没错。如果你正确地设置了你的路由,并且正确地安装了 Devise,它就会知道该做什么,并且它的用户控制器会做这些事情。它不需要直接存在于您的应用中。
-
谢谢谢恩!我很感激......我只是不明白,对rails还是新手,我有点明白,但不是一直。我以前做过php,但是这个有点不一样。
-
没问题。当我第一次开始使用 Ruby/Rails 时,我对编程非常陌生。诚然,宝石也让我感到困惑。就挂在那里。祝你好运。
标签: ruby-on-rails ruby devise rvm bundler