在Ruby on Rails中,partials是一种强大的方法来重用视图代码。当你想要在多个地方显示相似的内容时,可以使用partials。在Rails中,partials的文件名以下划线(_)开头,例如_form.html.erb或_comment.html.erb。
在Rails中,使用locals将变量传递给partials是很常见的。locals是一个包含变量名称和值的哈希表,它们将在partials的上下文中可用。这可以帮助你避免在多个地方使用实例变量,使代码更具可读性和可维护性。
以下是一些示例,说明如何在Rails中将locals传递给partials:
- 传递单个local:<%= render partial: "form", locals: { post: @post } %>在这个例子中,我们将@post实例变量传递给名为_form的partial,并在partial中将其作为post变量使用。
- 传递多个locals:<%= render partial: "comment", locals: { comment: my_comment, user: comment.user } %>在这个例子中,我们将my_comment和comment.user传递给名为_comment的partial,并在partial中将它们分别作为comment和user变量使用。
- 使用as关键字为local变量指定名称:<%= render partial: "user", locals: { user: current_user, admin: true }, as: :person %>在这个例子中,我们将current_user实例变量传递给名为_user的partial,并在partial中将其作为person变量使用。我们还传递了一个名为admin的local变量,它将在partial中作为person.admin使用。
总之,在Rails中使用locals将变量传递给partials是一种很好的做法,它可以使代码更具可读性和可维护性。你可以使用render方法和locals选项来实现这一点。