1

我有一个由 Rails Composer 使用 Devise 和 Rolify 生成的 Ruby 2 Rails 4 应用程序。我正在尝试重命名 Devise User 模型,所以我想销毁它并生成它。但是,我在尝试这样做时遇到了与 Rolify 相关的错误。我曾多次尝试摧毁 Rolify,但都没有成功,也无法超越这一点,以便我可以与 Devise 合作。

我将展示解决此问题的几种尝试,以及我得到的错误。 每次尝试都从应用程序的新副本开始。 我只显示错误流。

我基本上有两个问题:1.我如何销毁rolify?2.有没有更好的方法来重命名设计用户模型?我以为我找到了另一种方式,但是,对于我的生活,我再也找不到它了..

销毁 rolify,结果是在删除 role.rb 后尝试减去它失败。

rails destroy rolify Role User
      invoke  active_record
      remove    app/models/role.rb
      invoke    rspec
      remove      spec/models/role_spec.rb
      invoke      factory_girl
      remove        spec/factories/roles.rb
    subtract    app/models/role.rb
D:/BitNami/rubystack-2.0.0-11/ruby/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor/actions/inject_into_file.rb:98:in `binr
ead': No such file or directory - D:/BitNami/rubystack-2.0.0-11/projects/workingapp/app/models/role.rb (Errno::ENOENT)

销毁设计模型,生成设计模型并生成 rolify

rails destroy devise user 
rails generate devise device
rails generate rolify Role Device.
      invoke  active_record
The name 'Role' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.

销毁设计模型,生成设计模型,删除app/models/role.rb并生成rolify

rails destroy devise user 
rails generate devise device
del app/models/role.rb
rails generate rolify Role Device.
D:/BitNami/rubystack-2.0.0-11/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.0.3/lib/active_support/inflector/methods.rb:
226:in `const_get': uninitialized constant Role (NameError)
4

1 回答 1

1

无论如何,我无法找到这样做。退出 Rolify 似乎不起作用。我决定使用 Rails Composer 来创建没有 Devise、Rolify 和 CanCan 的应用程序,然后使用我想要的模型名称和配置分别生成它们。然后,我可以将所有写入该应用程序的代码迁移并修改它。这不是一个简单的答案,但它似乎是最好的选择......

于 2014-04-07T13:40:17.787 回答