Nir*_*hah 2 ruby-on-rails private-messaging devise
我在Ruby on Rails 3应用程序中使用Devise.我试图在我的应用程序中实现私人消息传递,我遇到了这个宝石:
https://github.com/jongilbraith/simple-private-messages
我(不小心)运行了以下命令.
rails generate simple_private_messages:model User Message
Run Code Online (Sandbox Code Playgroud)
它创建了Message模型.但它改变了我使用以下命令使用Devise生成的现有User模型的一些属性:
rails generate devise User
Run Code Online (Sandbox Code Playgroud)
现在,当我启动Ruby on Rails应用程序时,我收到此警告:
[警告]您提供了devise_for:users但您的应用程序中没有定义用户类型
我的Devise链接已停止工作:
ActionView :: Template :: Error(##:0x1064c9490>的未定义局部变量或方法`edit_user_registration_path'):
有人可以建议如果不能同时使用它们,我如何整合两者或还原我的更改?
我按照以下步骤安装了gem:
rails generate devise:install
rails generate devise User
rails generate simple_private_messages:model User Message
Run Code Online (Sandbox Code Playgroud)
将此行(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
Run Code Online (Sandbox Code Playgroud)
结束
编辑routes.rb文件,这里的顺序很重要,应该在消息路由之前定义devise_for.
devise_for :users
resources :users do
resources :messages do
collection do
post :delete_selected
end
end
end
Run Code Online (Sandbox Code Playgroud)
如果你想要脚手架:
rails generate simple_private_messages:scaffold User Message
Run Code Online (Sandbox Code Playgroud)
并记得取消注释(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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2211 次 |
| 最近记录: |