📜  如何在 rails partial 中传递本地人 (1)

📅  最后修改于: 2023-12-03 15:24:21.387000             🧑  作者: Mango

如何在 Rails Partial 中传递本地人

在 Rails 中使用 Partial 时,有时候需要在 Partial 中访问上下文中的本地变量。本文将介绍如何在 Rails Partial 中传递本地人。

Step 1: 定义 Partial

首先,需要在 Rails 中定义一个 Partial,例如:

<!-- partials/_person.html.erb -->
<div class="person">
  <h2><%= person.name %></h2>
  <p><%= person.bio %></p>
</div>

这是一个简单的 Partial,用于渲染一个人的信息。现在需要在本地上下文中定义一个人实例,以便传递给 Partial。

Step 2: 定义本地实例

在控制器或视图中定义一个本地实例:

# controllers/people_controller.rb
class PeopleController < ApplicationController
  def show
    @person = Person.find(params[:id])
  end
end

在控制器中定义了一个 @person 实例,该实例将在视图中使用。接下来,需要在视图中呈现 Partial。

Step 3: 呈现 Partial 并传递本地实例

要呈现 Partial,可以使用 render 方法。例如:

<!-- views/people/show.html.erb -->
<h1><%= @person.name %></h1>
<%= render partial: 'partials/person', locals: { person: @person } %>

这里定义了一个名为 person 的局部变量,它的值是 @personrender 方法将 Partial 呈现在视图中,并将 person 变量传递给 Partial。在 Partial 中访问此变量时,使用 person 变量名即可。

Step 4: 在 Partial 中访问本地实例

现在,可以在 Partial 中访问本地实例。例如:

<!-- partials/_person.html.erb -->
<div class="person">
  <h2><%= person.name %></h2>
  <p><%= person.bio %></p>
  <p><%= link_to 'Edit', edit_person_path(person) %></p>
</div>

在 Partial 中,可以使用 person 变量来访问本地实例的各个属性。在本例中,将 person 实例的名称和 bio 属性分别渲染到 h2 和 p 标记中。 此外,Partial 还包含一个带有任意功能的链接,该链接使用 person 变量中传递的 id 属性来生成路由。

总结

在 Rails 中,Partial 是一种强大的重用工具,可以减少模板代码中的冗余。 通过使用本地变量,可以轻松地将数据传递给 Partial,并在 Partial 中访问它们。 本文介绍了如何在 Rails Partial 中传递本地人,并提供了详细示例。