2

Ruby onRails3アプリケーションでDeviseを使用しています。私は自分のアプリケーションにプライベートメッセージングを実装しようとしていますが、この宝石に出くわしました:

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

私は(偶然に)次のコマンドを実行しました。

rails generate simple_private_messages:model User Message

メッセージモデルを作成しました。ただし、次のコマンドを使用してDeviseを使用して生成した既存のユーザーモデルの一部のプロパティが変更されました。

    rails generate devise User

これで、Ruby on Railsアプリケーションを起動すると、次の警告が表示されます。

[警告]devise_for:usersを指定しましたが、アプリケーションにモデルUserが定義されていません

そして、私のDeviseリンクは機能しなくなりました:

ActionView :: Template :: Error(#<#:0x1064c9490>の未定義のローカル変数またはメソッド `edit_user_registration_path'):

両方を同時に使用できない場合、両方を統合する方法、または変更を元に戻す方法を誰かに提案してもらえますか?

4

1 に答える 1

7

次の手順に従って、gemをインストールしました。

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

終わり

ルート.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:to):

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
于 2011-05-07T14:42:50.090 に答える