tpl
August 21, 2009, 5:58pm
1
tzn nie wiem czy tak sie da ale mam:
views/posts
_lista_postow.html.erb
[code]<% @posts.each do |post| %>
<%=h post.name %>
<%=h post.title %>
<%=h post.cat.name %>
<% end %>[/code]
i
views/home
[code]
Home#index
Find me in app/views/home/index.html.erb
Hello, Rails!
<%= render :partial => “posts/lista_postow” %>
<%= link_to “My Blog”, posts_path %>[/code]
a jak przekazać zmienne zeby dało się renderować plik z views/posts w views/home/ ?
czak
August 21, 2009, 6:07pm
2
tpl
August 21, 2009, 6:59pm
3
dzięki, ale i tak mam coś żle, bo mam ten podszablon jw. i w nim jest kod wyciągnięty z index.html.erb. Przy czym w index.html.erb śmiga poprawnie. A przy renderze podszablonu wyskakuje:
You have a nil object when you didn’t expect it!
do podszablonów w kontrolerze też coś musze pisać w takim razie ?
Tubis
August 22, 2009, 8:58am
4
Trzymaj się języka angielskiego w kodzie.
Jeśli do widoku home masz przekazaną zmienną @posts to:
<%= render :partial => "posts/lista_postow", :object => @posts %>
Jeśli nie to w akcji home kontrolera musi być coś w stylu:
@posts = Post.all
Alternatywa:
index:
<%= render :partial => "posts/lista_postow", :collection => @posts %>
lista_postow:
<h2><%=h post.name %></h2>
<p><%=h post.title %></p>
<p><%=h post.cat.name %></p>
A Zgodnie z konwencją rails:
index:
<%= render :partial => @posts %>
posts/_post.html.erb
<h2><%=h post.name %></h2>
<p><%=h post.title %></p>
<p><%=h post.cat.name %></p>
tpl
August 22, 2009, 10:07am
5
Dziekuje tak właśnie próbowałem podobnie tylko jakoś mi nie zadziałało, a z Twoją pomocą śmiga.