我想从活动记录中获取特定的列值,我在视图中编写了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 Card编号
请帮助我,我是新的ruby on rails并告诉我哪里错了,什么是问题
答案 0 :(得分:1)
您可以使用此方法,请参阅here
在您的情况下,请尝试以下操作:
OfferLetter.where("candidate_id = ?", params[:userID]).pluck("pan_number").first
并且
当你是ror的新手时,以下是为了帮助你前进:
仅在模型中编写ActiveRecord查询以便更快地执行查询,而不是在视图,控制器等中。
所以在这种情况下,尝试使用像&#39; get_pan_number&#39;在模型中并在视图中使用它。
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' } %>