Tag: 设计

更改设计消息“已发送电子邮件”

我在我的ruby on rails应用程序中使用了devise gem。 在用户注册时,如果已存在电子邮件,则会显示默认消息“已收到电子邮件”。 我在en.yml中更改了此消息 activerecord: errors: messages: taken: “User with same email already exists. Please try with another email address.” 在视图中我使用过: 现在我得到的信息是 “Email User with same email already exists. Please try with another email address.” 问题是在开始时附加了“电子邮件”。 有没有其他方法可以更改此默认消息?

使用Devise进行客户端validation

我正在尝试使用带有Devise的client_side_validations gem来validation设计注册表单。 validation可以正常使用其他所有内容,而不是Devise生成的表单。 我添加了相关的:validate => true但是validation只有在我点击提交不在选项卡上时才有效,就像在其他表单上一样。 Sign up true, :as => resource_name, :url => registration_path(resource_name)) do |f| %> “btn btn-primary btn-large” %>

设计模型多次运行before_save?

我的客户希望加密所有用户数据,所以我创建了一个before_save和after_find回调,它将使用Gibberish加密某些属性: # user.rb before_save UserEncryptor.new after_find UserEncryptor.new # user_encryptor.rb class UserEncryptor def initialize @cipher = Gibberish::AES.new(“password”) end def before_save(user) user.first_name = encrypt(user.first_name) user.last_name = encrypt(user.last_name) user.email = encrypt(user.email) unless not user.confirmed? or user.unconfirmed_email end def after_find(user) user.first_name = decrypt(user.first_name) user.last_name = decrypt(user.last_name) user.email = decrypt(user.email) unless not user.confirmed? or user.unconfirmed_email end private def encrypt(value) @cipher.enc(value) […]

如何应用自定义的Bootstrap消息错误来设计?

我正在将Bootstrap3错误样式应用于我的Rails4应用程序中的所有消息,这里( 来源 ) def bootstrap_class_for flash_type { success: “alert-success”, error: “alert-error”, alert: “alert-warning”, notice: “alert-info” }[flash_type] || flash_type.to_s end def flash_messages(opts = {}) capture do flash.each do |msg_type, message| concat(content_tag(:div, message, class: “alert #{bootstrap_class_for(msg_type)} fade in”) do concat content_tag(:button, ‘x’, class: “close”, data: { dismiss: ‘alert’ }) concat message end) end nil end end 在同一时间我试图将相同的样式应用于设计错误消息,但它不起作用。 […]

Devise中的NoMethodError :: Registrations #new

当我尝试注册我的应用程序时,我一直收到此错误,我正在使用设计进行身份validation; NoMethodError in Devise::Registrations#new undefined method `registration_path’ for #<#:0x007fe45d9ffd78> Extracted source (around line #3): Sign up resource_name, :url => registration_path(resource_name)) do |f| %> 当我跑到rake routes我得到了; Prefix Verb URI Pattern Controller#Action new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy user_password POST /users/password(.:format) devise/passwords#create new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit PATCH […]

扩展Devise以使用远程登录

我正在尝试关注这篇博客文章以允许使用设计进行远程身份validation,但我无法弄清楚一些事情。 我怎么称呼我的新文件,我在哪里放? 第一个, Devise::Models::RemoteAuthenticatable我假设我调用remote_authenticatable.rb并在我的模型文件夹中放入一个Devise::Models::RemoteAuthenticatable文件夹? 第二个文件,“设计的Warden策略”我不知道该怎么称呼,或者把它放在哪里。 有任何想法吗? 我发现教程很不完整。 它与Devise指令相关联,作为执行此操作的方式。 编辑: 我一直在做更多阅读,我不确定我是否需要按照博客文章中的说法去做。 我一直试图简单地将数据PUT到我的Rails应用程序,但无法获得任何工作。 执行PUT请求会导致设置松散身份validation。

Rails,Devise和多个域

假设我有一个应用程序将从完全不同的域访问,这些域都指向同一台服务器*: example.com,example.net,f​​oobar.com,… 我有一个基于Devise的身份validation系统,之前运行良好。 但是,现在的目标是将HTTPS添加到登录系统中。 问题是,事实certificate,没有办法在同一个IP地址上托管多个HTTPS网站**。 要解决此问题,我将登录页面设置为始终POST到https://secure.example.com 。 据我所知,这工作正常。 设计似乎没有任何疑虑。 然而,棘手的部分是用户现在需要被重定向到foobar.com,这也需要了解用户已登录。我通过网站返回登录表单中的隐藏参数,并重定向工作良好。 我仍无法通知foobar.com用户现已登录。 我已设法将其设置为在返回foobar.com后,将用户的secure.example.com会话cookie复制到foobar.com的新cookie中。 这部分工作正常。 但是,在Rails控制台中,web请求secure.example.com和foobar.com – 为每个发送相同的cookie – 产生两个完全不同的会话,因此,难怪Devise的行为就像用户从未登录过foob​​ar.com 有谁知道为什么这不起作用 – 为什么两个相同的Web请求(只有请求URI的域名不同 – 我也在Firebug中尝试过)会在Rails 3应用程序中生成两个完全不同的会话,但会有不同但一致的,会话ID? 更重要的是,有谁知道如何使这项工作? *为了本练习的目的,假设这是不可避免的,并且站点不能在不同的子域下托管,并且所需的域数太多,无法为每个域获取单独的IP地址。 **除非它们是子域名并且您拥有* .example.com证书,但这不是重点。

使用devise-async发送电子邮件不起作用(Rails / Sidekiq)

我在我的Rails应用程序中有sidekiq (2.15.2) , sidekiq (2.15.2) devise (3.2.0)和sidekiq (2.15.2) devise-async (0.9.0) 。 我试图让devise-async接管发送电子邮件。 但没有运气。 我按照这样的说明 : 添加:async到User模型: # models/user.rb class User include Mongoid::Document devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :async end 创建初始化程序: # config/initializers/devise_async.rb Devise::Async.backend = :sidekiq 我没有在邮件中进行任何自定义修改 # config/initializers/devise_async.rb Devise.setup do |config| config.mailer_sender = “my@email.com” # config.mailer = “Devise::Mailer” end 以下是创建新帐户时在控制台中显示的内容: Started POST […]

设计。 根据他的电子邮件自动创建用户名

是否可以使用设计自动根据自己的电子邮件创建用户名? 在注册页面上,我只有电子邮件和密码字段。 例如,当用户使用电子邮件randomname@gmail.com创建一个新帐户时,我希望他的用户名自动成为randomname 。 我怎样才能完成它?

用设计用户创建员工

它看起来像Devise用户的Profile模型? 但我的不同。 我想创建员工记录,该员工可以选择是否拥有用户帐户。 我正在为我的用户使用devise gem。 所以我有员工模型 has_one :user accepts_nested_attributes_for :user 和用户模型 belongs_to :employee 我知道我需要将嵌套用户放在我的视图中,但是如何将其保存在控制器中? 这不是这样的,对吗? params.require(:employee).permit(:name, user_attributes: [:email, :password]) 你能给我一些提示或一些有用的链接吗? 修改设计很难。 谢谢^ _ ^