轨道紧凑的字符串切片写

时间:2014-07-12 07:42:50

标签: ruby-on-rails ruby-on-rails-4 haml

在我的rails 4应用程序中,我使用haml。并在视图中我写了这样的字符串:

  %td= link_to admin_organization.introtext[0..40]+"...", admin_organization_type_organization_path(organization_type_id: admin_organization.organization_type_links.map { |e| e.organization_type_id }, id: admin_organization)

但是当这个字段时," introtext"是空的,我得到错误,我的应用程序崩溃。

我知道怎么检查它:

-if admin_organization.introtext.present?
 blablabla

但这是长代码。也许有其他方法可以做到这一点?写字符串切片并检查它是否为空 - 这没有发送此link_to?

1 个答案:

答案 0 :(得分:1)

使用link_to_if,对于切片,我会使用truncate文本助手方法:

%td= link_to_if admin_organization.introtext.present?, truncate(admin_organization.introtext, length: 40), admin_organization_type_organization_path(organization_type_id: admin_organization.organization_type_links.map(&:organization_type_id), id: admin_organization)

并注意到:您确定要将一系列ID传递给organization_type_id吗?如果您使用RESTful路由,这似乎没有多大意义。