Javascript 尝试求值为null值,并在值为null时插入指向google搜索的链接

Javascript 尝试求值为null值,并在值为null时插入指向google搜索的链接,javascript,ruby-on-rails-4,kendo-grid,link-to,active-model-serializers,Javascript,Ruby On Rails 4,Kendo Grid,Link To,Active Model Serializers,我有一个剑道网格,它被绑定到远程数据源 我想在特定列中的值为空时插入指向google搜索的链接 <%= company_URL || link_to("Search", "https://www.google.com/search?q=#{company.name}%20leadership%20team") %> 我不需要将此链接存储在数据库中,因此它更多地是一个表示问题。我试图使用template属性将其放入JS中,但我不清楚如何将其编写为如下所示的函数: columns:

我有一个剑道网格,它被绑定到远程数据源

我想在特定列中的值为空时插入指向google搜索的链接

<%= company_URL || link_to("Search", "https://www.google.com/search?q=#{company.name}%20leadership%20team") %>
我不需要将此链接存储在数据库中,因此它更多地是一个表示问题。我试图使用template属性将其放入JS中,但我不清楚如何将其编写为如下所示的函数:

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

还是把它放在控制器或序列化程序中更好,因为链接是一个表示问题?我正在使用active\u model\u序列化程序

我想我们可能需要更多的信息。。。在第一个代码段中,您展示了正常的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和谷歌搜索公司名称之间的中间环节。在序列化程序中,您可以自动访问传入的对象,在本例中,它是一家公司。然后我用三元表示if-else。如果有公司url,使用该url,如果没有,则输出谷歌搜索链接