2016-09-27 78 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 这里泛卡号码不显示

请帮助我,我在红宝石是新轨道上,并告诉我在哪里,我是错的,什么是问题

+0

尝试此,<(%)= f.text_field:PAN_NUMBER, {value:OfferLetter.where([“candidate_id =(?)”,params [:userID]])。first.select(“pan_number”)。first,placeholder:'COYP1234IN',class:'form-control'}% > – Navin

+0

当我们where子句中我们得到一个active :: record :: collection时,试着在获得单个记录后在那里查询像添加。首先它 – Navin

回答

0

您可以使用采摘这一点,看到http://apidock.com/rails/ActiveRecord/Calculations/pluck

在你的情况下,尝试以下:

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

而且

如你是新来的回报率,以下是帮助你前进方式:

写足够的法案在模型中的iveRecord查询仅用于更快的查询执行,而不是查看,控制器等。

因此,在这种情况下,尝试在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' } %> 
+0

非常感谢你..这是工作 –