[英]Rails - passing a variable to string interpolation
这就是我的控制器中的内容。 我正在使用设计,我试图显示接收用户电子邮件并将其传递到查找特定家庭的位置,以便我可以仅显示由用户控制的唯一家庭。
我在字符串插值方面遇到了问题。 如果我将电子邮件硬编码到查询中,它就可以正常工作。 但我希望它是动态的。 感谢您的帮助!
home_controller.rb
user_email = current_user.email
@unique_family = Unit.where(:accountOwner => '#{user_email}')
对于字符串插值,您需要使用双引号""
,例如:
name = 'Some name'
puts "Hello #{name}"
# => "Hello Some name"
您会看到name
在单引号内定义,但是使用 puts 并使用name
变量插入“Hello”字符串,则需要使用双引号。
要进行where
查询,您可以尝试:
user_email = current_user.email
@unique_family = Unit.where(:accountOwner => user_email)
在这种情况下,没有必要使用“nothing”插入user_email
或尝试将其转换为字符串,除非您想确保传递的内容是字符串,因此您可以执行以下操作:
@unique_family = Unit.where(:accountOwner => user_email.to_s)
或更好:
@unique_family = Unit.where('accountOwner = ?', user_email)
这会将传递的user_email
值绑定到您的查询。
只需使用正常的where
方法:
user_email = current_user.email
@unique_family = Unit.where(accountOwner: user_email)
我建议您创建关联User
<=> Unit
,例如
在用户.rb
has_one :family, class_name: Unit, foreign_key: :email
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.