使用partial来渲染完整的视图

时间:2010-09-18 16:46:02

标签: ruby-on-rails

我有一个简单的部分来展示相关社区的一些主题

<%= render :partial => 'shared/topic', :collection => @community.topics %>

我正在尝试制作该网站的移动版本,并且不会将部分视图渲染到同一视图,而是渲染到新视图。

我试过这样的事情

def topicsCommunity
  fetch_topics ["community_id = ?", @community.id]     
  render :action => 'index'
end

但我无法从社区视图中获取community.id。

还试过这个:

@topicscommunity = @community.topics.find(:all, 
                     :conditions => {:community_id => @community.id})

但是从topics_Controller中,它没有用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您不必仅在视图中使用render :partial => ...。您可以在控制器中轻松完成(而不是render :action => ...或其他)。

所以,只需将它放在控制器的末尾

render :partial => 'shared/topic', :collection => @community.topics

使用render:action:partial:text或任何其他哈希密钥调用:template之间没有根本区别。

答案 1 :(得分:0)

如果您只想渲染相同的模板,请使用:

def topicsCommunity
  fetch_skills ["community_id = ?", @community.id]     
  render 'index'
end