Ruby on Rails:如何在静态主页上显示帖子

蓝宝石琼斯

我正在编写一个Rails应用程序,我想做的是显示主页上的所有帖子。我有一个用于静态页面的控制器,这是主页的来源,还有一个用于帖子的控制器。到目前为止,我有这个:

home.html.erb

<% @posts.each do |post| %>
  <%= post.comment %>
<% end %>

帖子控制器

def home 
 @posts = Post.order("created_at desc").limit(5)
end

通过查看其他答案可以得到总体思路,但是undefined method 'each' for nil:NilClass即使数据库中有多个帖子,我仍然会收到错误消息。

到目前为止,如果这种关系完全影响到社区,那么社区中会有很多职位。谢谢。

静态页面控制器

class PagesController < ApplicationController
  def show
    render template: "pages/#{params[:page]}"
  end
end
ActiveModel_Dirty

默认情况下,没有任何内容可以告诉您StaticController执行中的home操作PostsController

Vishal是正确的,因为您应该将逻辑移至StaticController,但是仍然没有什么可以调用该动作。

一种解决方案是实例化@posts您的#index路线,以便当有人访问索引时,将执行该逻辑。

我认为,更好的解决方案是#home在您的方法中创建一个私有方法StaticController(也许将其重命名为更具描述性的方法……我load_posts在下面使用),然后在文件顶部创建一个before_action以告知Rails您想要#load_posts渲染时的内容index

class StaticController < ApplicationController

  before_action :load_posts, only: :index

  def index
    #logic for your index
  end

  private

  def load_posts
    @posts = Post.order("created_at desc").limit(5)
  end

end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ruby on Rails-如何更改页面顶部显示的最新帖子顺序?

在url中,如何在rails上的ruby中显示标题名称而不是id?

如何使用Ruby on Rails 5在模式下打开帖子显示页面

列出在Ruby on Rails 5上发布过帖子的用户

除了显示最新帖子外,如何在WordPress主页上显示每个类别的最新帖子?

如何在Ruby on Rails上使用Ruby上的小课程

如何在Ruby on Rails上使用ActionText / Trix嵌入iframe?

如何在Ruby on Rails上设置用户名验证?

如何在Rails 6上的ruby中重置主键ID?

使用Ruby on Rails上传静态网站并显示它们

如何在Ruby on Rails上安装Alchemist

如何在Rails上的ruby中显示数据库中的单个记录

Ruby on Rails 4项目。如何显示所有类别的所有帖子?

如何在Rails上使用ruby设置模型Twitter风格

如何显示个人列表?Ruby on Rails

如何在Rails上的ruby中显示除当前用户和current_user的朋友以外的所有用户

Ruby on Rails:如何在Heroku上运行自动耙任务

Ruby on Rails映射静态资源

如何显示所有带有所有评论的帖子-Ruby on Rails

如何在Ruby on Rails中显示条形图的图例?

如何在Ruby on Rails上绘制可缩放的矩形

如何在Rails上加载psd文件ruby

如何在 Ruby on Rails 中显示此数组中的值

静态页面到 ruby on rails

渲染操作显示在屏幕上 - Ruby on rails

如何在ruby rails上打印shell命令?

如何在特定范围内显示帖子?动作控制器 Ruby on Rails

如何在 Ruby On Rails 上的 ActiveRecord 列中插入哈希

Ruby on Rails