2016-09-27 2 views
0

レールに積極的記録から特定の列の値を取得し、私はビューで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 enter image description here を結果を以下ました

私はRuby on Railsをに新しいです、私を助け、私は間違っていると問題

+0

% = f.text_field <、これを試してください。pan_number、 first.select( "pan_number")。最初にプレースホルダ: 'COYP1234IN'、クラス: 'form-control'}}%{OfferLetter.where(["candidate_id =(?)"、params [:userID]]) > – Navin

+0

where節でactive :: record :: collectionを取得すると、後に単一レコードを取得しようとしますどこにクエリを追加するように.firstそれに – Navin

答えて

0

次試みるあなたのケースではhttp://apidock.com/rails/ActiveRecord/Calculations/pluck

を参照して、このために摘むを使用することができますが何であるところを教えてください:

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

そして

あなたはRORに新しいものとして、次のように先に道のお手伝いをすることです:アクトを書くのです

モデル内でのiveRecordのクエリは、ビュー、コントローラなどではなく、クエリーの実行を高速化するためにのみ行われます。

この場合、モデルで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' } %> 
+0

ありがとう..それは働いている –

関連する問題