簡體   English   中英

如何在Ruby on Rails中將視圖從“職位”應用程序渲染到我的主頁上?

[英]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} %>

(假設@postPostsController#show的博客文章)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM