有时在我的Rails视图中,我有一些重复的代码,因为我必须根据某些条件设置Rails辅助方法的参数。像:
<% if something %>
<%= link_to "Target", @target, class: "target-a" %>
<% else %>
<%= link_to "Target", @target, class: "target-b" %>
<% end %>
或其他例子:
<% if tooltip == false %>
<%= image_tag picture.url(size), class: "img-responsive #{css_class}" %>
<% else %>
<%= image_tag picture.url(size), class: "img-responsive #{css_class}", data: { toggle: "tooltip", placement: "bottom" }, title: "#{picture.name}" %>
<% end %>
有没有办法以更优雅的方式写这个(不重复整个帮助)?
由于
答案 0 :(得分:0)
您可以隔离选项哈希中的差异,并将差异合并到共享基本选项哈希中:
$("body").on("click", "#btnSaveData", function (e) {
// the row currently being edited has this class
var row = $(".editing");
var data = SiteTable.row(row).data();
data.Site = $("#Site").val();
data.OffsetX = $("#OffsetX").val();
data.OffsetY = $("#OffsetY").val();
data.DirectionName = $("#DirectionName").val();
data.CenteringName = $("#CenteringName").val();
data.StructureName = $("#StructureName").val();
data.Source = $("#Source").val();
$(row).removeClass("editing")
//SiteTable.row(row).data(data).draw();
SiteTable.row(row).invalidate().draw();
});
或者,更好的是,您可以使用自己的自定义帮助程序方法执行相同类型的操作。使用辅助方法是首选,因为那时你有一个方法可以测试,重用,命名(以自我文档的方式)等。