如何获取表列值?

时间:2011-01-27 08:24:05

标签: ruby-on-rails activerecord

我编写跟随代码以从表webeehs中获取一条记录:

webeehs_result = Webeeh.find(:all, :conditions=>["webeeh_project_id=#{project_id}"]) 

然后我想从这条记录中得到一个列值,我该怎么办? 例如,列名称为webeeh_date

3 个答案:

答案 0 :(得分:4)

首先,永远不要写那样的代码。将自己的条件构建为纯字符串可能会使您容易受到SQL注入攻击。如果你必须做条件,那就这样做:

:conditions => ["webeeh_project_id = ?", project_id]

如果您有项目模型,则应将Webeeh模型中的webeeh_project_id列重命名为project_id,并在项目模型中添加关联,如has_many :webeehs

然后,您不再需要再调用该查找,只需执行p = Project.find(id),然后p.webeehs将返回您需要的webeeh。

结果将是一个可以迭代的数组。要获得webeeh.webeeh_date成员,请按以下方式调用:

result.each do |webeeh|
   date = webeeh.webeeh_date
end

答案 1 :(得分:2)

webeehs_result = Webeeh.findwebeeh_dates 

足以获取所有列值。

对于其他方法和性能问题,请检查以下内容:http://www.stopdropandrew.com/2010/01/28/finding-ids-fast-with-active-record.html

答案 2 :(得分:0)

webeeh_result通常是数据库的结果数组。

您可以使用

进行迭代
webeehs_result.each do |webeeh|

 # use "webeeh.webeeh_date" to access the column_name or do whatever you want with it.

end