📅  最后修改于: 2023-12-03 15:24:21.387000             🧑  作者: Mango
在 Rails 中使用 Partial 时,有时候需要在 Partial 中访问上下文中的本地变量。本文将介绍如何在 Rails Partial 中传递本地人。
首先,需要在 Rails 中定义一个 Partial,例如:
<!-- partials/_person.html.erb -->
<div class="person">
<h2><%= person.name %></h2>
<p><%= person.bio %></p>
</div>
这是一个简单的 Partial,用于渲染一个人的信息。现在需要在本地上下文中定义一个人实例,以便传递给 Partial。
在控制器或视图中定义一个本地实例:
# controllers/people_controller.rb
class PeopleController < ApplicationController
def show
@person = Person.find(params[:id])
end
end
在控制器中定义了一个 @person
实例,该实例将在视图中使用。接下来,需要在视图中呈现 Partial。
要呈现 Partial,可以使用 render
方法。例如:
<!-- views/people/show.html.erb -->
<h1><%= @person.name %></h1>
<%= render partial: 'partials/person', locals: { person: @person } %>
这里定义了一个名为 person
的局部变量,它的值是 @person
。 render
方法将 Partial 呈现在视图中,并将 person
变量传递给 Partial。在 Partial 中访问此变量时,使用 person
变量名即可。
现在,可以在 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 中传递本地人,并提供了详细示例。