В Ruby 1.9 были смягчены условия окончания строки, так что теперь мы можем начинать строку с точки, показывающей вызов метода. Это удобно, когда мы смешали связанные и несвязанные методы и хотим показать, где начинается следующий несвязанный. Без этой новой функции лучшее, что мы могли бы сделать, это, вероятно, использовать отступ:
method1(args1).
method2(args2).
method3(args3)
method4(args4).
method5(args5).
method6(args6)
или вставить пустую строку. Но это было неудобно, потому что мы должны обращать внимание на отступы и в то же время не забывать ставить точку после каждого вызова метода, кроме последнего в цепочке. Из-за этого я создал так много ошибок с лишним или отсутствующим периодом. С новой функцией мы можем сделать это намного лучше:
method1(args1)
.method2(args2)
.method3(args3)
method4(args4)
.method5(args5)
.method6(args6)
где точка визуально функционирует как маркеры с отступом.
Проблема в том, что, когда вы хотите вставить комментарии перед строкой, начинающейся с точки, она возвращает ошибка.
method1(args1)
# method2 does blah blah
.method2(args2)
# method3 then does foo foo
.method3(args3)
method4(args4)
# method5 does blah blah
.method5(args5)
# method6 then does bar bar
.method6(args6)
# => error
или
method1(args1)
# method2 does blah blah
.method2(args2)
# method3 then does foo foo
.method3(args3)
method4(args4)
# method5 does blah blah
.method5(args5)
# method6 then does bar bar
.method6(args6)
# => error
Кажется, что "# ...."
не просто сброшено, но каким-то образом взаимодействует с кодом. Что случилось? Какое здесь точное ограничение? Когда точки стояли в конце строки, этого не происходило.
{общедоступный тип EventType {получить; установлен; } общедоступная строка Source {get; установлен; }
} public enum EventType: int
{...
У меня следующая структура:
Модель
public class EventEntry : LogEntry
{
public EventType Type { get; set; }
public string Source { get; set; }
}
public enum EventType : int
{
Information = 1,
Warning = 2,
Error = 3
}
Представление
<div id="grid">
@{
var grid = new WebGrid(canPage: true, rowsPerPage: Ctrl.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
grid.Bind(Model.Events, rowCount: Model.TotalRecords, autoSortAndPage: false);
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column("Type"),
grid.Column("Source"));
}
</div>
Контроллер
public ActionResult Index(int? page, string sort, string sortdir) {...}
Когда я нажимаю на столбец «Источник», который имеет строку типа, sordir изменится с «ASC» на «DESC», но когда я пробую то же самое в столбце «Тип», sordir всегда будет возвращать «ASC».