动态获取Model对象的键值

时间:2015-08-27 11:09:58

标签: ruby ruby-on-rails-4

我正在尝试使用以下内容(通过each循环创建i)从表中的字段链接的关联表中获取值:

value = current_user.question["convq#{i}"].id

我的表以Questions表到Questionsbank表的引用,其形式为名为convq1_id,convq2_id ... convq3_id的列。

我只想循环浏览Questions中的每个字段并获取questionbank.text字段。

可悲的是,上面只会使用以下代码向我提供问题表字段中的物理值,而不是指向相关记录的链接:

(1...9).each do |i|
  value = current_user.question["convq#{i}"].id
end

任何人都可以告诉我如何在表中循环并获取引用记录的相关“id”或文本值吗?

提前致谢。

每个模型都设置为:

class Question < ActiveRecord::Base

  belongs_to :user
  belongs_to :convq1, :class_name => 'Questionbank'
  belongs_to :convq2, :class_name => 'Questionbank'
  belongs_to :convq3, :class_name => 'Questionbank'
  belongs_to :convq4, :class_name => 'Questionbank'
  belongs_to :convq5, :class_name => 'Questionbank'
  belongs_to :convq6, :class_name => 'Questionbank'
  belongs_to :convq7, :class_name => 'Questionbank'
  belongs_to :convq8, :class_name => 'Questionbank'
  belongs_to :convq9, :class_name => 'Questionbank'
  has_many :questionbanks

end

和......

class Questionbank < ActiveRecord::Base

  has_many :likes
  has_many :questions

end

1 个答案:

答案 0 :(得分:0)

我认为这是你可能正在寻找的东西:

(1...9).each do |i|
  value = current_user.question["convq#{i}"]
  questionbank = Questionbank.find_by( question: "{value}")
  questionbank.id
end