- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 devise 和 devise_invitable
gem 'devise', '>= 2.0.0'
gem 'devise_invitable', '~> 1.0.0'
我在网站的管理部分有一个链接,可以自动向用户发送邀请电子邮件
= link_to 'Send Invitation', invite_user_path(@user), :remote => true, :title => "Sends an email directly to the user"
def invite
@user = User.find(params[:id])
User.invite!(:email => @user.email)
flash.now[:success] = "Invitation email has been sent"
respond_to do |format|
format.js
end
end
这会向数据库中 user.invitation_token 不为 NULL 的用户发送电子邮件,但会跳过向其他用户发送电子邮件....这是为什么以及如何更正此问题。同样在 devise_invitable 的文档中这就是他们所说的调用邀请的方式!
User.invite!(:email => "new_user@example.com", :name => "John Doe")
但是当我这样做时,他们说我不能批量分配属性名称
任何帮助将不胜感激
我注意到如果用户 invitation_token 字段中有任何内容,电子邮件将会发出,但我最初如何创建它
更新...这是我的整个用户模型
class User < ActiveRecord::Base
delegate :can?, :cannot?, :to => :ability
has_many :roles, :through => :role_users
has_many :role_users
has_many :notifications, :through => :subscriptions
has_many :subscriptions
has_many :companies, :through => :positions
has_many :positions
has_many :notification_histories
has_many :sites, :through => :site_users
has_many :site_users
scope :admins, joins(:roles).where("roles.name = 'SuperAdmin' or roles.name = 'SubAdmin'")
scope :regular, joins(:companies).where('positions.regular_user = 1').group('users.id')
scope :employee, joins(:companies).where('positions.regular_user = 0').group('users.id')
scope :current, :conditions => { :active => true }, :order => 'LOWER(first_name), LOWER(last_name) ASC'
default_scope :order => 'LOWER(first_name) ASC'
has_many :feedbacks do
def for_playlist(id)
find_or_create_by_playlist_id(id)
end
end
def name
"#{self.first_name} #{self.last_name}"
end
has_many :ratings, :through => :feedbacks do
def for_playlist(id)
where('feedbacks.playlist_id = ?', id)
end
end
Role::TYPES.each do |role|
define_method(role + '?') do
self.has_role?(role)
end
end
def has_role?(role_name)
role_name = role_name.name if role_name.is_a?(Role)
self.roles.where(:name => role_name.to_s).exists?
end
accepts_nested_attributes_for :roles, :notifications, :allow_destroy => true
def company
self.companies.first
end
def site
self.sites.first
end
validates :first_name, :presence => true
validates :last_name, :presence => true
validates :email, :presence => true
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :create, :if => :email_present?
validates_uniqueness_of :email
validates_format_of :phone_number, :with => /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/, :allow_nil => true
validates_format_of :password,
:with => /^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d\W]).*$/,
:message => "must be at least 6 characters, have one number and one capital letter",
:if => Proc.new { |user| !user.password.blank? }
before_validation :clear_empty_attrs
before_validation :clean_data
# Include default devise modules
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :invitable
# Setup accessible (or protected) attributes for devise support
attr_accessible :email, :password, :password_confirmation, :remember_me, :active,
:company_id, :first_name, :last_name, :phone_number, :role_ids, :notification_ids, :name
def role?(role)
return !!self.roles.find_by_name(role.to_s.camelize)
end
def ability
@ability ||= Ability.new(self)
end
def name
"#{first_name} #{last_name}"
end
def list_companies
companies.map(&:name).try(:join, ", ").try(:titlecase)
end
def email_present?
!self.email.blank?
end
protected
def clear_empty_attrs
@attributes.each do |key,value|
self[key] = nil if value.blank?
end
end
def clean_data
self.email.downcase! unless self.email.nil?
end
end
最佳答案
在 config/environments
下,根据您希望完整电子邮件功能运行的环境,设置 ActionMailer 配置是先决条件。例如,如果您希望在开发中发送电子邮件,这些应该存在于 development.rb
(production.rb
用于生产):
# change to true to allow email to be sent during development
config.action_mailer.perform_deliveries = false
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "example.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"], # you can use ordinary gmail username here
password: ENV["GMAIL_PASSWORD"] # you can use your gmail password here, but don't push the changes
}
关于ruby-on-rails - 为什么设计邀请不发送一些电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164841/
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
.NET 框架:4.5.1 我在 Blend for visual studio 2015 中遇到一个奇怪的错误,我找不到它的来源。 如果我在 VS 中打开我的 WPF 解决方案,它会加载并运行良好。
我经常遇到这样的问题,与 Hierarchical RESTful URL design 非常相似 假设该服务仅提供用户上传文档。 POST, GET /accounts PUT, DELETE /a
在 Rails 应用程序中,我使用 devise 来管理我的用户,而我用来销毁 session 的链接不再有效。它正在工作,现在我添加了事件管理员,但没有。 我的链接是 :delete, :clas
我已经坚持了超过 24 小时,试图按照此处发布的其他解决方案进行操作,但我无法使其正常工作。我是 Rails 新手,需要帮助! 我想让我的/users/edit 页面正常工作,以便我可以简单地更改用户
Devise 在以下情况下不会使用户超时: 用户登录,关闭选项卡,然后在超时 + X 分钟内重新访问该 URL。用户仍处于登录状态。 如果选项卡已打开并且稍后刷新/单击,则超时可以正常工作。这意味着
我想使用这样的 slider 我希望该 slider 根据提供给它的值进行相应调整。到目前为止,我只能应用具有渐变效果的背景,但无法获得这种效果。请通过提供样式代码来帮助我。
您应该为每种方法创建一个请求/响应对象,还是应该为每个服务创建一个? 如果我在所有方法中使用它,我的服务请求对象中将只有 5 个不同的东西,因为我对几乎所有方法使用相同的输入。 响应对象将只有一个字典
我正在尝试在 REST 中对实体的附件进行建模。假设一个缺陷实体可以附加多个附件。每个附件都有描述和一些其他属性(上次修改时间、文件大小...)。附件本身是任何格式的文件(jpeg、doc ...)
我有以下表格: Blogs { BlogName } BlogPosts { BlogName, PostTitle } 博客文章同时建模一个实体和一个关系,根据 6nf(根据第三个宣言)这是无效的。
如果 A 类与 B、C 和 D 类中的每一个都有唯一的交互,那么交互的代码应该在 A 中还是在 B、C 和 D 中? 我正在编写一个小游戏,其中许多对象可以与其他对象进行独特的交互。例如,EMP点击
关于如何记住我与 Omniauth 一起工作似乎有些困惑。 根据这个wiki ,您需要在 OmniauthCallbacksController 中包含以下内容: remember_me(user)
设计问题: 使用 非线程安全 组件(集合,API,...)在/带有 多线程成分 ... 例子 : 组件 1 :多线程套接字服务器谁向消息处理程序发送消息... 组件 2 :非线程安全 消息处理程序 谁
我们目前正在设计一个 RESTful 应用程序。我们决定使用 XML 作为我们的基本表示。 我有以下关于在 XML 中设计/建模应用程序数据的问题。 在 XML 中进行数据建模的方法有哪些?从头开始然
我正在设计一个新的 XSD 来从业务合作伙伴那里获取积分信息。对于每笔交易,合作伙伴必须提供至少一种积分类型的积分值。我有以下几点:
设计支持多个版本的 API 的最佳方法是什么。我如何确保即使我的数据架构发生更改(微小更改),我的 api 的使用者也不会受到影响?任何引用架构、指南都非常有用。 最佳答案 Mark Nottingh
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我想用 php 创建一个网站,其工作方式与 https://www.bitcoins.lc/ 相同。确实,就每个页面上具有相同布局但内容会随着您更改链接/页面而改变而言,我如何在 php 中使用lay
我有一个关于编写 Swing UI 的问题。如果我想制作一个带有某些选项的软件,例如在第一个框架上,我有三个按钮(新建、选项、退出)。 现在,如果用户单击新按钮,我想将框架中的整个内容更改为其他内容。
我正在尝试找出并学习将应用程序拥有的一堆Docker容器移至Kubernetes的模式和最佳实践。诸如Pod设计,服务,部署之类的东西。例如,我可以创建一个其中包含单个Web和应用程序容器的Pod,但
我是一名优秀的程序员,十分优秀!