用于更改渲染部分的按钮

时间:2014-02-12 16:27:36

标签: ruby-on-rails ruby ruby-on-rails-3

Ruby on Rails 3.我有一个包含几个div块的页面。我试图将它们分成两页。我想在页面底部有一个按钮,它会改变渲染的部分。

“渲染'新闻'”是第一个部分加载的。我希望“存档新闻发布”按钮将“新闻”更改为“archive_news”

<%= render 'news' %>
<%= link_to render(:partial => 'archive_news'), :class => 'btn' %>&nbsp;&nbsp;<button type="button" class="archive">Archived News Postings</button>

我可以获得指针吗?谢谢

1 个答案:

答案 0 :(得分:1)

这取决于你想要实现的目标。例如,可以考虑这两个选项:

1)您可以同时获取新闻和已存档的新闻。然后使用相应的新闻项呈现两个div。显示有新闻的那个,而另一个在CSS中有display: none;。这允许您使用JavaScript来切换div的可见性。这显然有一些数据量等方面的缺点,但它给出了一个想法。

这些方面的东西:

控制器:

def some_action
  @items = ...
  @archived_items = ...
end

视图:

<div id="news">
  <% @items.each do |i|
    ...
</div>

<div id="archived_news">
  <% @archived_items.each do |i|
    ...
</div>

的CSS:

#archived_news {
  display: none;
}

2)另一种方法是依赖于异步获取新闻项目,因为用户想要“切换”。这可以通过AJAX完成。如果数据集很大,这允许更大的灵活性。您甚至可以以某种方式“获取更多”,如果需要,可以根据需要加载存档的新闻项目。

如果你对可能需要的内容有所了解,可以给出一个更具体的答案。