簡體   English   中英

Rails - 將變量傳遞給字符串插值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM