尝试评估空值并在值为空时将 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.
我有一个正在绑定到远程数据源的 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.