Rails - 将变量传递给字符串插值

时间:2017-07-03 02:30:22

标签: ruby-on-rails ruby-on-rails-5

这就是我控制器中的内容。我正在使用设计,我试图显示用户的电子邮件并将其传递到找到特定系列的位置,以便我只显示用户控制的独特系列。

我遇到字符串插值问题。如果我将电子邮件硬编码到查询中,它可以正常工作。但我希望它是动态的。谢谢你的帮助!

home_controller.rb

  user_email = current_user.email
  @unique_family = Unit.where(:accountOwner => '#{user_email}')

3 个答案:

答案 0 :(得分:1)

对于字符串插值,您需要使用双引号GlobalDataMethods.install = function(Vue, options) { Vue.getAPIData = function(paramObj) { } Vue.getFormData = function(formId) { } } Vue.use(GlobalDataMethods); ,例如:

""

你看到name = 'Some name' puts "Hello #{name}" # => "Hello Some name" 在单引号中被定义,但是使用了put和插入" Hello"带有name变量的字符串,然后必须使用双引号。

要进行name查询,您可以尝试:

where

在这种情况下,没有必要使用"无内容"来内插user_email = current_user.email @unique_family = Unit.where(:accountOwner => user_email) 。或尝试将其转换为字符串,除非你想确定传递的是一个字符串,所以你可以这样做:

user_email

或更好:

@unique_family = Unit.where(:accountOwner => "#{user_email}")

这会将@unique_family = Unit.where('accountOwner = ?', user_email) 的传递值绑定到您的查询。

答案 1 :(得分:0)

只需使用普通的where方法:

user_email = current_user.email
@unique_family = Unit.where(accountOwner: user_email)

答案 2 :(得分:0)

我建议您创建关联User< => Unit,类似

user.rb

中的

has_one :family, class_name: Unit, foreign_key: :email