Rails如何使用特定的question_id返回答案列表

时间:2012-10-09 21:12:19

标签: ruby-on-rails list return

假设我有两个模型,答案和问题(还有其他模型,但与问题无关)。模型如下:

Answer.rb

class Answer < ActiveRecord::Base
  attr_accessible :description, :question_id
  has_one :question, :through => :user, :dependent => :destroy
  validates :description, :presence => true
end

Question.rb

class Question < ActiveRecord::Base
  attr_accessible :budget, :description, :headline, :user_id, :updated_at, :created_at
  belongs_to :user
  has_many :answers
  validates :headline, :description, :user_id, :presence => true 
end

我想在页面上显示与问题相关的所有答案的列表,并且只显示那些问题。

我到目前为止。我相信这个变量通过question_id(外键)找到数据库中的所有问题:

@findanswers = Answer.all(params[:question_id]) 

这个抓住了当前问题的id(此代码将作为ERB存在于当前问题所在的页面上):

@questionshow = Question.find(params[:id])

现在我被卡住了。如何将两者放在一起,以便列出当前问题ID的所有答案?

2 个答案:

答案 0 :(得分:1)

首先你需要一个question.answers的路线,你可以用它来实现(在config / routes.rb中)

resources :questions
  resources :answers
end

然后在你看来你可以做到

<% @questionshow.answers.each do |answer| %>

<% end %>

答案 1 :(得分:0)

应该是

@findanswers = Question.find(params[:question_id]).answers

但您必须确定“问题ID”是否由params[:id]params[:question_id]

表示