[英]How to render a view from my “posts” application onto my Home page in Ruby on Rails?
我使用<%= render 'posts/form' %>
成功地添加了“ Post”表單,但是我不想要表單,只是Show視圖。 我希望主頁顯示所有張貼的帖子,但不希望從那里創建帖子。
編輯:我有一個靜態頁面作為我的主頁,並且我希望我的“帖子”顯示在主頁的正文中,就像常規博客網站的設置一樣。 我計划稍后添加一個登錄功能,以訪問創建/讀取/更新/刪除部分。 例如,我使用代碼<%= render 'posts/form' %>
來使該表單顯示在首頁的正文中,但是我只想顯示完整的“ posts”。
config / routes.rb
get 'posts#index'
root 'posts#index'
如果在路由文件中,請同時刪除resources :posts
。
這樣可以使帶有“郵寄”表單的頁面無法訪問。
您也可以根據需要刪除表單視圖文件; 但是,您可能以后要使用它們。 posts_controller.rb文件中的new / create / edit / update操作也是如此。
您可能想為包含表單的頁面添加一些身份驗證? 我不確定您要做什么。
您需要更改主頁控制器以查詢所有帖子,然后更改視圖:
家庭控制器
class HomeController < ApplicationController
def index
@posts = Posts.all
end
end
views / home / index.html.erb
<h1>Posts</h1>
<% @posts.each do |post|
<h2><%= post.title %></h2>
<div>
<%= post.body %>
</div>
<% end %>
這是Ruby on Rails控制器的基本工作 。
然后,您可以利用局部變量來干燥您的視圖:
views / posts / _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
是PostsController#show
的博客文章)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.