好吧,我有一个问题,我想知道它是否可以只用 rails 来解决。
我已经设置了一个包含 3 个部分的视图(home.html.erb),如下所示:
<%provide :title, 'Reader'%>
<div class = "row">
<div class = "span4">
<div class = "row">
<%= render 'layouts/add_subscription'%>
</div>
<div class = "row">
<%= render 'layouts/subscription_list'%>
</div>
</div>
<div class = "span8">
<div class = "row">
<%= render 'layouts/view' %>
</div>
</div>
</div>
其中,subscription_list 显示重定向后指向列表操作的链接列表,每个链接都带有订阅的 id:
<ul>
<% current_user.subscriptions.each do |s| %>
<li><%= link_to s.url, "/list?s_id=#{s.id}" %></li>
<% end %>
</ul>
因此,这些链接中的每一个都指向控制器中的列表操作,该操作尝试获取刚刚单击的订阅的提要列表,并使用所选订阅的标题列表更新主视图:
def list
s_id = params[:s_id]
feed = ""
if !s_id.blank?
s = Subscription.find_by(id: s_id)
feed = Feedzirra::Feed.fetch_and_parse(s.url)
#render partial: "layouts/view", :locals => {:f => feed}
end
问题是我被困在这一点上。我尝试使用 feed 作为参数进行 redirect_to home_path ,甚至进行渲染(列表方法末尾之前的行)以查看发生了什么,但没有更新“只是”部分布局/视图:
<ul>
<% if defined? feed and !feed.blank? %>
<% f.entries.each do |entry|%>
<li><%= entry.title %></li>
<% end %>
<% end %>
</ul>
因此,我想知道是否可以仅使用 rails 方法更新部分并在页面重新加载后查看结果,或者是否可以/必须使用 javascript 来完成,以及如何执行此操作的线索。提前致谢。