尝试评估空值并在值为空时将 link 插入到 google 搜索

Trying to eval for null value and insert link to google search when value is null

我有一个正在绑定到远程数据源的 Kendo 网格。

当特定列中的值为 Null 时,我想在 google 搜索中插入 link。

<%= company_URL || link_to("Search", "https://www.google.com/search?q=#{company.name}%20leadership%20team") %>

我不需要将此 link 存储在数据库中,因此它更像是一个演示问题。我尝试使用模板属性将它放在 JS 中,但我不清楚如何将其编写为如下所示的函数:

 columns: [ {
   field: "name",
   template: function(dataItem) {
  return "<strong>" + kendo.htmlEncode(dataItem.name) + "</strong>";
  }

还是把它放在控制器或序列化程序中更好,因为 links 是一个表示问题?我正在使用 active_model_serializer

我认为我们可能需要更多信息...在您的第一个代码片段中,您显示的是正常的 Rails 视图语法,您提到您尝试使用 JS,但后来您说您正在使用活动模型序列化程序。这些是非常不同的用例,如果不确切知道您需要什么,就很难回答这个问题。

无论哪种方式,您所要求的在序列化程序中都很容易做到。假设您有一个 CompanySerializer,您可能会在序列化程序中创建一个名为 company_link 的自定义方法,就像这样..

class CompanySerializer < ActiveModel::Serializer

  attributes :id, :name, :company_link

  def company_link
    object.company_url ? object.company_url : "https://www.google.com/search?q=#{object.company.name}"
  end

end

在序列化程序中,您可以根据需要创建任意数量的自定义方法,然后将它们传递到属性列表中。因此,我使用通用方法 company_link 作为 company_url 和 google 搜索公司名称的中间方法。在序列化程序中,您会自动访问 object ,这是传入的对象,在本例中,它是一家公司。然后我使用三元作为 if else。如果有 company_url,则使用它,如果没有,则输出 google 搜索 link.