首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在局部中使用部分?

在局部中使用部分?
EN

Software Engineering用户
提问于 2012-07-27 20:56:15
回答 2查看 6.3K关注 0票数 4

我是个铁路新手,所以请容忍我。

我有几个地方,一些页面,一些部分使用:

代码语言:javascript
复制
<%= link_to "delete", post, method: :delete,
                                 data: { confirm: "You sure?" },
                                 title: post.content %>

让它成为一个部分是否有意义,因为它被反复使用,有时也在其他部分中使用?

还行吗。把部分词放进部分词?

EN

回答 2

Software Engineering用户

发布于 2012-08-18 10:11:55

我会尝试限制在其他部分中使用部分,因为它会对视图呈现速度产生负面影响(例如,呈现大量的部分非常慢),但我必须说,是的,在其他部分中使用部分是可以的。

有几件事你可能应该意识到这一点:

  1. 它会像地狱一样令人困惑,特别是当:
    • 你传递了很多局部变量。
    • 您正在呈现集合,即用某种类型的数组在部分上循环。

  2. 从你问这个问题的事实可以推断出,你可能不知道你已经在部分中呈现了部分。
    • 我的意思是,布局(大概是"application.html.erb")将是视图中唯一的非局部布局。
    • 每当您有一个由视图呈现的操作,即“显示”、“新”、“编辑”(假设您处于休息状态)时,您应该意识到相应的视图(例如“show.html.erb”)是在主布局文件中呈现的一个部分。
    • 因此,你自己使用的一个部分('_users.html.erb‘或你拥有的东西)实际上已经是’在另一个部分中的一部分‘。

感觉有点像盗梦空间,不是吗?:)

至于你的具体例子,我同意另一个回答者的意见,你应该把它当作一个助手。您可以在许多模型中使用它,只要您对助手中的内容进行足够的抽象,如下所示:

代码语言:javascript
复制
def delete_link_for(polymorphic_object, method_symbol)
   link_to "delete", polymorphic_object, method: :delete,
                             data: { confirm: "You sure?" },
                             title: post.send(method_symbol)
end

这样你就可以像这样调用:

代码语言:javascript
复制
 <%= delete_link_for(@post, :content) %>
 <%= delete_link_for(@user, :username) %>

等。

票数 3
EN

Software Engineering用户

发布于 2012-07-27 22:39:14

我认为一个模板对于这样一个小的小模特儿来说太过分了。我会写一个辅助法代替。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/158523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档