Tag: devise

Rails 4.1 Mailer预览和设计自定义电子邮件

我有一个全新的Rails 4.1.1应用程序,我正在自定义Devise电子邮件。 我想让它们显示在新的Rails电子邮件预览function上,所以我做了以下事情: 1)在我的config/development.rb文件中添加了以下代码段: config.action_mailer.preview_path = “#{Rails.root}/lib/mailer_previews” 2)在app/mailers/user_mailer.rb创建我的自定义Devise电子邮件UserMailer : class UserMailer < Devise::Mailer helper :application # gives access to all helpers defined within `application_helper`. include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url` layout "notifications_mailer" end 3)更改了config/initializers/devise.rb以包含以下代码段: config.mailer = ‘UserMailer’ 4)使用以下内容将类UserMailerPreview添加到lib/mailer_previews : class UserMailerPreview < ActionMailer::Preview def confirmation_instructions UserMailer.confirmation_instructions(User.first, {}) end def reset_password_instructions UserMailer.reset_password_instructions(User.first, {}) end def unlock_instructions […]

基于令牌的Rails JSON API身份validation

我在rails中制作API。 对于正常的身份validation,我们使用设计,但在API中如何实现设计validation。 gem ‘devise_token_auth’ 有人更喜欢这个gem进行身份validation,但没有可用的教程。 如何在rails api中实现authenitication?

Rails范围与当前用户一起查找

我正在使用Rails 3和Devise进行用户身份validation。 假设我有一个User模型,启用了Devise,还有一个Product模型,以及一个User has_many Products。 在我的Products控制器中,我希望我的find方法由current_user限定,即。 @product = current_user.products.find(params[:id]) 除非用户是管理员用户,即current_user.admin? 现在,我几乎在每个方法中运行该代码,这看起来很乱: if current_user.admin? @product = Product.find(params[:id]) else @product = current_user.products.find(params[:id]) end 这样做有更优雅/标准的方式吗?

如何使注册页面成为Devise的根页面?

我正在使用Devise 3.1.0在Rails 4.0.0上运行。 我的路线设置如下: devise_for :users do root “devise/registrations#new” end resources :books 我想要做的是让Devise注册页面成为用户的欢迎页面,如果他们还没有登录,但是如果他们已登录他们将进入图书索引。 现在它只是给我标准的Ruby on Rails:Welcome Aboard页面,好像Devise不存在。 我该怎么办? 回答 https://github.com/plataformatec/devise/issues/2393 devise_for :users devise_scope :user do authenticated :user do root :to => ‘books#index’, as: :authenticated_root end unauthenticated :user do root :to => ‘devise/registrations#new’, as: :unauthenticated_root end end

在rails app中为多个模型使用设计

你好我是rails的新手,我已经安装了rails版本4.我想知道我正在为老师n学生制作项目。 我可以将设计gem应用于模型教师和学生。 我项目中的主要内容是教师和学生注册表格需要不同。 然后任何人都可以告诉我如何应用设计的程序,以便可以不同地创建注册表单…

在两个rails4应用程序之间共享会话

我正在用设计创建一个应用程序。 有两个域名1)www.test.com和2)www.hello.com两个域指向同一个应用程序。 所以我想在两个应用程序之间共享session(current_user)。 用户将登录(1)并且应该访问域(2)。 请建议什么是最好的方式。

TrueClass的未定义方法`model_name’:DeviseConfirmations的类(Rails 4,设计)

在我的Rails应用程序中,为了在用户注册时将用户国家(使用Geocoder gem)保存到User表中,并使用另一个SO问题 ,我在控制器/ confirmations_controller.rb中更改了一些内容但是我遇到了严重的错误我不明白也不设法解决: def after_sign_up_path_for(resource) if Devise.allow_insecure_sign_in_after_confirmation resource.update(user_country: request.location.country) after_sign_in_path_for(resource) else resource.update(user_country: request.location.country) root_path end end 奇怪的是,用户在我的本地数据库中保存了一切正常(包括我想要的用户国家)。 但是当我得到一个包含以下错误消息的错误页面时,必须发生一些事情: undefined method `model_name’ for TrueClass:Class 整个错误日志: (0.8ms) COMMIT (0.5ms) BEGIN SQL (1.3ms) UPDATE “users” SET “remember_created_at” = $1, “updated_at” = $2 WHERE “users”.”id” = 427 [[“remember_created_at”, 2014-06-24 10:52:32 UTC], [“updated_at”, 2014-06-24 12:52:32 +0200]] (0.7ms) COMMIT (0.4ms) […]

设计如何在创建用户表单中添加一个addtional字段?

我正在尝试在创建时向我的用户添加用户名。 在设计/注册/新我有: Sign up resource_name, :url => registration_path(resource_name)) do |f| %> “devise/shared/links” %> 问题是没有params[:username]发送到控制器,我在视图中收到以下错误: ActiveRecord::StatementInvalid in Devise::RegistrationsController#create Mysql::Error: Column ‘username’ cannot be null: INSERT INTO `users` (`email`, `encrypted_password`, `reset_password_token`, `reset_password_sent_at`, `remember_created_at`, `sign_in_count`, `current_sign_in_at`, `last_sign_in_at`, `current_sign_in_ip`, `last_sign_in_ip`, `created_at`, `updated_at`, `username`) VALUES (‘mail@test.dk’, ‘$2a$10$bWjAXLY8QGXrXeVrGciv2O6mjRF940lajBEsUOPPtPDhKyj0A/gia’, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, ‘2011-05-15 16:16:36’, ‘2011-05-15 16:16:36’, NULL) […]

Rails 4设计3.1.1 ActionController :: Devise中的UnknownFormat :: RegistrationsController #new

我正在使用Devise 3.1.1开发用于用户身份validation的Rails 4应用程序。 当我单击/users/sign_up.user链接时,Rails会抛出以下exception: ActionController::UnknownFormat in Devise::RegistrationsController#new ActionController::UnknownFormat Rails.root: /home/rehan/odesk_work/kiefer-waight/ujoin/ujoin-www Application Trace | Framework Trace | Full Trace actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:372:in `retrieve_collector_from_mimes’ actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:327:in `respond_with’ devise (3.1.1) app/controllers/devise/registrations_controller.rb:8:in `new’ actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action’ actionpack (4.0.0) lib/abstract_controller/base.rb:189:in `process_action’ actionpack (4.0.0) lib/action_controller/metal/rendering.rb:10:in `process_action’ actionpack (4.0.0) lib/abstract_controller/callbacks.rb:18:in `block in process_action’ activesupport (4.0.0) lib/active_support/callbacks.rb:413:in `_run__890637270__process_action__callbacks’ …. 我在启动应用程序时实际上是在Devise 3.0.0.rc上,我认为将设备升级到3.1.1可能会解决问题,但事实并非如此。 […]

从现有模型/数据库设计安装

我想知道如何为不同用户的现有数据库添加设计。 在这里,我已经有一个客户模型定义,我想改变以允许设计工作。 我已经创建了一个新的迁移并插入了代码 class AddDeviseToCustomer false, :default => ”, :limit => 128 t.confirmable t.recoverable t.rememberable t.trackable t.token_authenticatable t.timestamps end end end 据此,它应该工作。 https://github.com/plataformatec/devise/wiki/How-To:-change-an-already-existing-table-to-add-devise-required-columns 。 但是当运行rake db:migrate时,我得到以下内容 undefined method `confirmable’ for # 我运行了以下行 rails g devise:install 任何理由设计都不会认出来,我是否需要做一些事情来说客户是一个设计? 提前致谢