开发一个 Rss 阅读器 04 - 文章详情
(停更了很久了,继续继续)
上一次制作了简单的文章列表,这一次需要加入详情页面,能够全文抓取的文章,一般我不太会打开原文,所以有一个看正文的页面还是很有必要的。
正文需要:
显示文章的标题,正文,发布时间等信息
打开则自动标记为已读
替换列表链接
要让列表中的文章标题点击后打开正文页面,需要更新其链接页面。
修改 app/views/items/index.html.erb
将原文链接替换为详情页面链接,因为 rails 会自动识别链接,所以 link_to 的链接参数直接使用 item 对象即可,它会指向 /items/<item.id>
的链接。
<%= link_to item.title, item.link, target: '_blank' %>
替换为
<%= link_to item.title, item, target: '_blank' %>
此时的文章详情页面还比较乱。
简化页面
简单的编辑一下查看页面,替换文件 app/views/items/_item.html.erb
内容为
<div id="<%= dom_id item %>">
<h1><%= link_to item.title, item.link %></h1>
<time datetime="<%= item.published_at %>"><%= item.published_at.to_s(:short) %></time>
<div class="item-content">
<%== item.content.blank? ? item.description : item.content %>
</div>
</div>
标题直接链接到原文
正文优先读取全文
content
, 如果找不到,再尝试读取摘要description
修改后大致是下面的效果。
最后再清理一下底部的 Edit this item 和 Destroy this item 的操作链接和按钮,编辑 app/views/items/show.html.erb 删除相关代码即可。
虽然整体上还是没什么可读性,但是以后再优化吧。
下一步
标记已读和在列表中显示已读和未读状态就下次再做吧。