[英]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.