2012-12-28 45 views
1
I have the following models: 
  • 用戶
  • 調查
  • DIMENSION
  • 問題只列出問題與用戶在軌道3

    以下關係關聯:

  • USER(的has_many) - > SURVEYS

  • 測量(的has_many) - >尺寸
  • DIMENSION(的has_many) - >問題

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

    我只需要列出一個USER的QUESTIONS。例如:ID = 1的用戶登錄。所以只需列出USER的問題。

    我用SQL手動嘗試使用INNER JOINS,但我不能。任何人都可以給我一個提示。 我也試圖與@ question.dimension.survey.user_id = @current_user,但沒有成功

感謝的

回答

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

+0

根據用戶ID(即 '1'),可以寫作'@questions = User.find(1).surveys.map {| d | d.dimensions} {.MAP | Q | q.questions}' – VenkatK

+0

did not work.did not work。 看,我想列出問題只有用戶登錄和所有出現在這裏。 – nosbielcs

+0

我決定好了,我不知道這是不是最好的方法: – nosbielcs

0

我決定好了,我不知道這是否是最好的方式(在app /控制器/ 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 %>