小编pow*_*wer的帖子

使用delivery_later时在邮件程序中无法访问attr_accessor

我正在使用devise_invitable邀请用户加入应用程序,因为我想在电子邮件中添加自定义消息。所以我的代码看起来像这样。

#user.rb
attr_accessor :message

def self.invite(emails, message)
  User.invite!({email: email}) do |user|
    user.message = message
  end
end

#here I am overriding devise_invitable method to send mails later
def send_devise_notification(notification, *args)
  devise_mailer.send(notification, self, *args).deliver_later
end

#users_controller.rb
def invite_user
  User.invite(params[:email], params[:message]) 
end    

#invitation_instructions.html.erb
<% if @resource.message %>
  <p><%= @resource.message %></p>
<% end %>    
Run Code Online (Sandbox Code Playgroud)

当我只使用传递时,邮件上会显示消息,但是当我在邮件视图中使用nil中的delivery_later attr_accessor时。

ruby-on-rails actionmailer ruby-on-rails-4 devise-invitable

5
推荐指数
1
解决办法
218
查看次数

ActiveRecord和ActiveRecord :: Relation对象之间的区别

我已搜索但无法找到ActiveRecord和ActiveRecord :: relation对象之间差异的简要说明.

我知道ActiveRecord是通过类似的东西找到的单个对象

User.find(1)
Run Code Online (Sandbox Code Playgroud)

而ActiveRecord :: Relation就是像对象一样的数组

User.where(id: 1)
Run Code Online (Sandbox Code Playgroud)

我在查询执行或对它们的深入解释方面寻找它们之间的区别,因此它将清除它背后的整个概念.

提前致谢!

ruby activerecord ruby-on-rails active-relation rails-activerecord

5
推荐指数
1
解决办法
2248
查看次数

如何生成devise gem的注册控制器

我已经设置了 Devise,我已经在 user.rb 文件中设置了以下代码

  def self.create_auto_password
    generated_password = Devise.friendly_token.first(8)
    self.create(password: generated_password, password_confirmation: generated_password)
  end
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过运行来生成注册控制器

rails generate devise:controllers -c registrations

以及其他一些变体,但它不会生成...在 Devise 中创建注册控制器的正确命令是什么?

ruby-on-rails devise

2
推荐指数
1
解决办法
7702
查看次数

用ruby中的单个字符替换字符串中的多个相同字符

我有一个动态生成的字符串,其中可以包含任意数量的":"示例.

example1: "test string:: this is test string"
example2: "test string:::: this is test string"
Run Code Online (Sandbox Code Playgroud)

我想将这样的字符串转换成以下内容

result string1: "test string: this is test string"
result string2: "test string: this is test string"
Run Code Online (Sandbox Code Playgroud)

请帮忙

ruby

0
推荐指数
1
解决办法
86
查看次数