1
I have the following models:
  • 用户
  • 民意调查
  • 方面
  • 问题

    以下关系:

  • 用户(has_many)-> 调查

  • 调查(has_many)-> 尺寸
  • 维度(has_many)-> 问题

    ================================

    我只需要为一个用户列出问题。例如: id = 1 的 USER 是登录名。所以只会列出该用户的问题。

    我尝试使用 INNER JOINS 手动使用 sql,但我做不到。谁能给我一个提示。我也试过 @question.dimension.survey.user_id = @current_user ,但没有成功

谢谢

4

2 回答 2

0

我决定好了,我不知道这是否是最好的方法(在 app/controllers/question_controller.rb 中):

<% @questions.each do |question| %>
<% if (question.dimension.survey.user_id == @current_user.id) %>
<tr>
<td><%= question.dimension.survey.user.name %></td>
<td><%= question.dimension.survey.title %></td>
<td><%= question.dimension.name %></td>
<td><%= question.question %></td>
<td><%= question.order %></td>
<td><%= question.status %></td>
<td><%= link_to 'Show', question %></td>
<td><%= link_to 'Edit', edit_question_path(question) %></td>
<td><%= link_to 'Destroy', question, method: :delete, data: { confirm: 'Are you sure?' } %>
</td>
</tr>
<% end %>
<% end %>
于 2012-12-29T04:26:17.770 回答
0

下面的查询肯定会起作用。尝试这个。

@questions = current_user.surveys.map{|d| d.dimensions}.map{|q| q.questions}
如果你手动给当前用户,你可以像这样
@questions = User.find(1).surveys.map{|d| d.dimensions}.map{|q| q.questions}for user id=1

于 2012-12-28T05:57:25.607 回答