2011-05-07 93 views
2

我在我的Ruby on Rails 3应用程序中使用Devise。我想实现我的应用程序的私人信息和我遇到这种宝石传来:设计和简单的私人消息

https://github.com/jongilbraith/simple-private-messages

我(不小心)运行以下命令。

rails generate simple_private_messages:model User Message 

它创建的消息的模式。但它改变了我一直在使用设计使用下面的命令生成的把现有的用户模型的一些特性:

rails generate devise User 

现在,当我开始我的Ruby on Rails应用程序我得到这样的警告:

[警告]您提供devise_for:用户,但有一个在您的应用程序

没有定义模型的用户和我的设计环节已经停止工作:

::的ActionView ::模板错误(未定义的局部变量或方法`edit_user_registration_path”为#<#:0x1064c9490>):

可有人请建议我如何能够整合双方或恢复我的变化,如果它是不可能同时使用它们的?

回答

7

我已经按照这些步骤来安装宝石:

rails generate devise:install 

rails generate devise User 

rails generate simple_private_messages:model User Message 

加入这一行(has_private_messages)到用户模型:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me 

    has_private_messages 

编辑routes.rb中文件,这里的顺序很重要,devise_for应该在消息路由之前定义。

devise_for :users 

resources :users do 
    resources :messages do 
     collection do 
      post :delete_selected 
     end 
    end 
end 

如果你想支架:

rails generate simple_private_messages:scaffold User Message 

而且记得要去掉这一(attr_accessor:于):

class Message < ActiveRecord::Base 

    is_private_message 

    # The :to accessor is used by the scaffolding, 
    # uncomment it if using it or you can remove it if not 
    attr_accessor :to 
end 
+0

非常感谢!现在正在工作.. – 2011-05-08 16:49:22