我使用<%= render 'posts/form' %>
成功添加了“发布”表单,但我不想要表单,只需要显示视图。我希望主页显示所有发布的帖子,但我不希望从那里创建帖子。
<%= render 'posts/form' %>
使表单显示在主页的正文中,但我想只显示已完成的“帖子”。
答案 0 :(得分:0)
配置/ routes.rb中
get 'posts#index'
root 'posts#index'
如果它位于路线文件中,也请删除resources :posts
。
这将使得无法访问包含Post表单的页面。
如果您愿意,也可以删除表单视图文件;但是,您可能希望以后再使用它们。对于posts_controller.rb文件中的new / create / edit / update操作也是如此。
您可能想为包含表单的页面添加一些身份验证吗?我不确定你到底要做什么。
答案 1 :(得分:0)
您需要更改家庭控制器以查询所有帖子,然后更改视图:
<强>的HomeController 强>
class HomeController < ApplicationController
def index
@posts = Posts.all
end
end
<强>视图/家/ index.html.erb 强>
<h1>Posts</h1>
<% @posts.each do |post|
<h2><%= post.title %></h2>
<div>
<%= post.body %>
</div>
<% end %>
这是基本的Ruby on Rails controller work。
然后,您可以使用部分内容来干扰您的观看次数:
<强>视图/帖/ _post.html.erb 强>
<h2><%= post.title %></h2>
<div>
<%= post.body %>
</div>
现在views/home/index.html.erb
变为:
<h1>Posts</h1>
<% @posts.each do |post|
<%= render partial: 'posts/_post', locals: {post: post} %>
<% end %>
views/posts/show.html.erb
成为:
<%= render partial: 'posts/_post', locals: {post: @post} %>
(假设@post
是<{1}}中的博客帖子