目前我正在寻找一个特色的'标题展示,这是完美的 - 唯一不好的是它还显示每个循环中的所有特色帖子。所以你有一个标题展示,然后直接在下面完全相同的帖子(看起来有点傻!)
我希望仅在每个循环中排除第一篇帖子,如果&= 39;精选== true' 。
目前我正在使用
<% @posts.each do |post| %>
<% next if post.featured == true %>
但这是排除所有帖子的特色== true&#39;而我想排除第一篇与之匹配的帖子。
由于
答案 0 :(得分:2)
尝试此操作,首先在要排除的控制器中获取@exclude_post
然后在view
中使用它来检查
@exclude_post_id = @posts.where(featured: true).first.id
<% @posts.each do |post| %>
<% next if @exclude_post_id == post.id %>
答案 1 :(得分:0)
只需从@posts
中排除精选帖子即可使用以下内容:
<% @posts.reject { |p| @featured_posts.include?(p) }.each do |post| %>
答案 2 :(得分:0)
做类似的事情:
@posts = Post.where("id != ?",
Post.where(featured: true).order(created_at).limit(1).first.id)
现在在你看来:
<% @posts.each do |post| %>
<% your code %>