问题描述
说我有一个问题
和答
模型和我拉所有的答案,以一个具体的问题。
我可以轻松地做一个 each_with_index
来,并找出一个答案的索引或安置是什么(相对于其他的答案到具体的问题)。
不过,说我希望得到一个明确的答案......我怎么可能还找出这个问题的答案的指数相对于与特定问题相关的所有其他的答案。
示例答
数据:
ID文本question_id
23真棒3
27 boooyah 3
38单元3
如果我做了 Answer.find(27)
我怎么能弄清楚,记录是第二项(假设我被订购ID ...虽然我可以任何领域顺序)。
类应答和LT; ActiveRecord的::基地
belongs_to的:问题 高清位置(列='ID',为了='ASC')
ORDER_BY =#{列}#{}秩序
箭头= order.capitalize ==ASC? &所述=:=>中
question.answers.where(#{列}#{}箭头(?),self.send(列))。为了(ORDER_BY).Count之间
结束
结束Answer.find(27).POSITION
Answer.find(27).POSITION(的updated_at)
Answer.find(27).POSITION(的updated_at,DESC)
Say I've got a Questions
and Answer
model and I pull all the answers to a specific question.
I can easily do an each_with_index
to and figure out what the index or "placement" of an answer is (in relation to the other answers to that specific question).
But, say I want to get a specific answer...how could I still figure out what the index of that answer is in relation to all the other answers associated with a specific question.
Example Answer
data:
ID text question_id
23 awesome 3
27 boooyah 3
38 snap 3
If I did Answer.find(27)
how can I figure out that record is the second item (assuming I'm ordering by ID...though I could order by any field).
class Answer < ActiveRecord::Base
belongs_to :question
def position(column = 'id', order = 'ASC')
order_by = "#{column} #{order}"
arrow = order.capitalize == "ASC" ? "<=" : "=>"
question.answers.where("#{column} #{arrow} (?)", self.send(column)).order(order_by).count
end
end
Answer.find(27).position
Answer.find(27).position("updated_at")
Answer.find(27).position("updated_at", "DESC")
这篇关于扶手:获取记录的位置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!