Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > Имя автора по id статьи


Автор: implements 10.9.2010, 09:01
Есть 2 таблицы:
Article id,title,user_id
User id,name
Ну понятно что в user_id хранится id автора

ссылка на показ статьи выглядит так

Код

 <% @article.each do |article| %>
    <tr>
      <td><%=link_to h(article.title), :action=>'show',:id=>@article%></td>
    </tr>
  <% end %>


Так вот как в view show отобразить имя автора зная id статьи?
Покамись придумал такой вариант, в контроллере article_controller в методе show создаю объект @article, и затем используя этот объект создаю оъект @user

Код

 def index
    @article=Article.all
  end

  def show
    @article=Article.find(params[:id])
    @user=User.find(@article.user_id)
  end

Но подозреваю можно выкрутиться по другому и проще.

P.S видно на рельсах мало кто пишет, что то активность на форуме низкая. Или я в него не догоняю, что так часто спрашиваю!


Автор: niksan 10.9.2010, 09:39
Если в моделях прописаны has_many и belongs_to, то можно обращаться так:
Код

<% @article.each do |article| %>
    <tr>
      <td><%=link_to h(article.title), :action=>'show',:id=>@article%> Пользователь:<%=article.user.name%></td>
    </tr>
  <% end %>

Автор: implements 10.9.2010, 12:32
niksan,  ага спасибо заработало когда вписал belongs_to в модель article, правда не понял что это означает=)

Автор: Vasay 10.9.2010, 12:36
Цитата(implements @  10.9.2010,  12:32 Найти цитируемый пост)
га спасибо зарботало когда вписал belongs_to, правда не понял что это означает=)


belongs_to - "принадлежит к" 

т.е. вы показываете, что статья принадлежит юзеру. Как следствие - у статьи появляется поле юзер.

Автор: implements 10.9.2010, 12:41
Vasay,  Ммм интересно, благодарю.
Думаю этот вариант куда более проще(думаю и правильнее) чем я описал в первом посте!

Автор: source777 10.9.2010, 15:56
Цитата(implements @  10.9.2010,  09:01 Найти цитируемый пост)
видно на рельсах мало кто пишет, что то активность на форуме низкая. Или я в него не догоняю, что так часто спрашиваю!

Видимо все остальные хотя бы базовую документацию читают прежде чем вопросы задавать.
И тебе не помешает RTFM smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)