2011-05-07 91 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