1
I have the following models:
  • ユーザー
  • 調査
  • 寸法
  • 質問

    次の関係:

  • ユーザー (has_many) -> アンケート

  • 調査 (has_many) -> ディメンション
  • ディメンション (has_many) -> 質問

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

    1 人のユーザーに対してのみ質問をリストする必要があります。例: ID = 1 の USER はログインでした。したがって、そのユーザーの質問をリストするだけです。

    INNER JOINSを使用してSQLを手動で試しましたが、できませんでした。誰でも私にヒントを与えることができますか?@question.dimension.survey.user_id = @current_user でも試しましたが、成功しませんでした

ありがとう

4

2 に答える 2

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}、ユーザー id=1 に対して次のようにすることができます

于 2012-12-28T05:57:25.607 に答える
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 に答える