перечисление только вопросов коррелирует с пользователем в rails 3

I have the following models:
  • USER
  • SURVEY
  • DIMENSION
  • QUESTION

    The following relationships:

  • USER (has_many) -> SURVEYS

  • SURVEY (has_many) -> DIMENSIONS
  • DIMENSION (has_many) -> QUESTIONS

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

    I need to list the QUESTIONS only for one USER. For example: The USER with id = 1 was login. So will just list the QUESTIONS that USER.

    I tried with sql manually using INNER JOINS, but I could not. Can anyone give me a hint. I also tried with @question.dimension.survey.user_id = @current_user , but had not success

Благодаря

1
добавлено
Просмотры: 1

6 ответы

The below query will work for sure. Try this.

@questions = current_user.surveys.map{|d| d.dimensions}.map{|q| q.questions}
If you give the current user manually, you can go like this
@questions = User.find(1).surveys.map{|d| d.dimensions}.map{|q| q.questions} for user id=1

0
добавлено
В соответствии с идентификатором пользователя (т.е. «1») вы можете написать как @questions = User.find (1) .surveys.map {| d | d.dimensions} .map {| д | q.questions}
добавлено автор VenkatK, источник
не работает. не работает. Послушайте, я хочу перечислить ВОПРОСЫ только в поле USER, и все они появляются здесь.
добавлено автор nosbielcs, источник
Я решил хорошо, я не знаю, если это лучший способ:
добавлено автор nosbielcs, источник

The below query will work for sure. Try this.

@questions = current_user.surveys.map{|d| d.dimensions}.map{|q| q.questions}
If you give the current user manually, you can go like this
@questions = User.find(1).surveys.map{|d| d.dimensions}.map{|q| q.questions} for user id=1

0
добавлено
В соответствии с идентификатором пользователя (т.е. «1») вы можете написать как @questions = User.find (1) .surveys.map {| d | d.dimensions} .map {| д | q.questions}
добавлено автор VenkatK, источник
не работает. не работает. Послушайте, я хочу перечислить ВОПРОСЫ только в поле USER, и все они появляются здесь.
добавлено автор nosbielcs, источник
Я решил хорошо, я не знаю, если это лучший способ:
добавлено автор nosbielcs, источник

The below query will work for sure. Try this.

@questions = current_user.surveys.map{|d| d.dimensions}.map{|q| q.questions}
If you give the current user manually, you can go like this
@questions = User.find(1).surveys.map{|d| d.dimensions}.map{|q| q.questions} for user id=1

0
добавлено
В соответствии с идентификатором пользователя (т.е. «1») вы можете написать как @questions = User.find (1) .surveys.map {| d | d.dimensions} .map {| д | q.questions}
добавлено автор VenkatK, источник
не работает. не работает. Послушайте, я хочу перечислить ВОПРОСЫ только в поле USER, и все они появляются здесь.
добавлено автор nosbielcs, источник
Я решил хорошо, я не знаю, если это лучший способ:
добавлено автор nosbielcs, источник

Я решил хорошо, я не знаю, лучший ли это (в app/controller/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 %>
0
добавлено

Я решил хорошо, я не знаю, лучший ли это (в app/controller/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 %>
0
добавлено

Я решил хорошо, я не знаю, лучший ли это (в app/controller/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 %>
0
добавлено