簡體   English   中英

從Rails中的活動記錄中獲取特定的列值

[英]Fetch specific column value from active records in rails

我想從活動記錄中獲取特定的列值,我在視圖中編寫了sql查詢,但未獲取數據... new.html.erb

 <%= f.text_field :pan_number, { value: OfferLetter.where(["candidate_id = (?)",params[:userID]]).select("pan_number").first, placeholder: 'COYP1234IN', class: 'form-control' } %>

然后我得到以下結果

OfferLetter.where(["candidate_id = ?",17]).select("pan_number")


OfferLetter Load (0.3ms)  SELECT `offer_letters`.`pan_number` FROM `offer_letters` WHERE (candidate_id = 17)
=> #<ActiveRecord::Relation [#<OfferLetter id: nil, pan_number: "COPYD123IN">]>

和new.html.page 在此處輸入圖片說明 這里不顯示Pan卡號

請幫助我,我是紅寶石的新手,告訴我我在哪里錯了,什么是問題

您可以為此使用pluck,請參閱http://apidock.com/rails/ActiveRecord/Calculations/pluck

在您的情況下,請嘗試以下操作:

OfferLetter.where("candidate_id = ?", params[:userID]).pluck("pan_number").first

當您不熟悉ror時,以下內容可幫助您前進:

請勿僅在Models中編寫ActiveRecord查詢,而是為了在視圖,控制器等中更快地執行查詢。

因此,在這種情況下,請嘗試在Model處使用“ get_pan_number”之類的類方法,然后在視圖中使用它。

OfferLetter.rb

def self.get_pan_number(cand_id)
 OfferLetter.where("candidate_id = ?", cand_id).pluck("pan_number").first
end

並在視圖中按如下方式使用它:

new.html.erb

<% pan_no = OfferLetter.get_pan_number(params[:userID]) %>
<%= f.text_field :pan_number, { value: pan_no, placeholder: 'COYP1234IN', class: 'form-control' } %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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