Как показать информацию, прикрепленную к модели из другой модели? - PullRequest
0 голосов
/ 24 февраля 2010

Я только что закончил вводное руководство по RoR: http://guides.rubyonrails.org/getting_started.html. Это отличное руководство, и все работает.

Я пытаюсь немного его расширить, ПОКАЗЫВАЯ теги в представлении "Пост". (Руководство устанавливает его так, чтобы вы могли добавлять теги при добавлении сообщения, даже если тег и сообщение являются разными моделями).

Возможно, это что-то простое, я просто не знаю, как это сделать или найти эту конкретную информацию.

За что стоит:

 <p>
  <b>Tags:</b>
  <%=h @post.tags %>
</p>

Показывает это:

Tags: [#<Tag id: 2, name: "Awesome", post_id: 2, created_at: "2010-02-23 23:53:42", updated_at: "2010-02-23 23:53:42">]

Ответы [ 2 ]

2 голосов
/ 24 февраля 2010

Правильно ли я вас понимаю, что вы получаете данные тега вместе с данными публикации, но недовольны дисплеем?

Я бы предложил что-то вроде этого, чтобы оно выглядело лучше:

<% @post.tags.each |tag|%>
<%= <span class=tag>tag.name</span> %>
<% end %>

В идеале вы бы обернули это в частичный

_show_tags.html.erb:

<% show_tags.each |tag|%>
<%= <span class="tag">tag.name</span> %>
<% end %>

и позвоните по номеру

<%= render :partial => show_tags, :collection => @post.tags %>
0 голосов
/ 24 февраля 2010

Хорошо, я понял это сам.Должен ли я ответить на вопрос самостоятельно или проголосовать за закрытие?

В любом случае вот ответ:

Перейдите к контроллеру сообщений и в действии Показать добавьте эту строку в:

@tag = Tag.find(params[:id])

Это находит необходимый тег.Затем в представлении пост-шоу добавьте эту строку в:

<p>
  <b>Tags:</b>
  <%=h @tag.name %>
</p>

Это напечатает имя тега.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...