链接到我的应用程序中的帖子时遇到一个小绊脚石。我正在截断帖子的文本并提供“阅读更多”链接。有 2 个区域可以查看帖子,一个供所有人(公共)使用,另一个供管理员用户编辑/删除帖子。
所以在我的公众看来,我正在这样做
<% @toppost.each do |t| %>
<div class="post-item">
<h2><%= t.title %></h2>
<ul id="newsHome">
<li><%= date_output(t.published_on) %></li>
<li><%= t.department.name %></li>
<li>by Admin</li>
</ul>
<% if t.comments.length > 350 %>
<p class="post-description"><%= truncate(t.comments, length: 350).html_safe %>
<%= link_to '...Read more', t %></p>
<% else %>
<p class="post-description"><%= t.comments.html_safe %></p>
<% end %>
</div>
<% end %>
但是,当单击阅读更多时,它会将我带到 url
/posts/:id
这实际上是管理员用户查看帖子的地方,所以此时用户将被重定向回主页,因为帖子控制器有
before_filter :authenticate_user!
例如,公开查看所有帖子的地方是在特定的新闻页面上。
localhost:3000/tynewyddnews
localhost:3000/woodside
localhost:3000/sandpiper
localhost:3000/outreach
我的问题是如何在网站公共部分的位置链接到该帖子。
使用 top_posts 方法的索引操作(方法见下文)
def index
@title = 'Home'
@toppost = Post.top_posts
结尾
top_posts 方法
def self.top_posts
#Array with each of the 4 departments - first record
top_posts = [
self.tynewydd_posts.first,
self.woodside_posts.first,
self.sandpiper_posts.first,
self.outreach_posts.first
]
#remove entry if nil
top_posts.delete_if {|x| x==nil}
return top_posts
结尾
控制器
def tynewyddnews
@title = 'Ty Newydd News'
tynewyddpost = Post.tynewydd_posts.reverse
tynewyddpost.pop
@tynewyddpost = tynewyddpost
@tynewyddpostlatest = Post.tynewydd_posts.first
end
模型
scope :tynewydd_posts, :include => :department, :conditions => {"departments.name" => "Ty Newydd"}, :order => "posts.published_on DESC"
其他部门还有另外3个范围,都一样寻找条件部门名称
希望我添加了足够的信息,还有什么需要的请询问
编辑
一直在考虑这一点,不确定我是否走在正确的轨道上,但是对于每个帖子,我都需要它链接到公共页面控制器中相应的新闻页面。
tynewyddnews
sandpipernews
outreachnews
Woodsidenews
因此,在我的 link_to 中,我需要根据帖子的类型将路由传递给适当的操作。那么如何给每个帖子一个类型,然后链接到那个?
谢谢