Придумайте и простые-приватные сообщения - PullRequest
2 голосов
/ 07 мая 2011

Я использую Devise в моем приложении Ruby on Rails 3.Я пытаюсь реализовать частную передачу сообщений в моем приложении, и я наткнулся на этот камень:

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

Я (случайно) выполнил следующую команду.

rails generate simple_private_messages:model User Message

Он создал модель сообщения.Но это изменило некоторые свойства моей существующей модели User, которую я сгенерировал с помощью Devise, используя следующую команду:

    rails generate devise User

Теперь, когда я запускаю свое приложение Ruby on Rails, я получаю это предупреждение:

[ПРЕДУПРЕЖДЕНИЕ] Вы указали devise_for: пользователей, но нет модели. Пользователь определен в вашем приложении

И мои ссылки на Devise перестали работать:

ActionView:: Template :: Error (неопределенная локальная переменная или метод `edit_user_registration_path 'для # <#: 0x1064c9490>):

Может кто-нибудь подсказать, как можно интегрировать оба или отменить мои изменения, если это не такможно ли их использовать одновременно?

1 Ответ

7 голосов
/ 07 мая 2011

Я выполнил следующие шаги, чтобы установить гем:

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

конец

Отредактируйте файл route.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
...