Я думаю, что в 3.0 произошли некоторые изменения по этому поводу, но в предыдущих версиях хитрость заключалась в том, чтобы пройти self
:
def table_for(list, &proc)
Table.new(self)
# ...
def initialize(binding)
@binding = binding
#...
def render_column
@binding.content_tag :table do
# ...
end
end
Я не уверен, что все еще так, как это делается в рельсах 3.
Еще одна вещь, которую нужно исправить в ordere, чтобы код работал, - это сохранить выходные данные внутреннего тега content_tag где-нибудь, как в случае each
, контент генерируется, а затем отбрасывается. Одно из возможных решений:
def render_column(list)
@binding.content_tag :table do
list.inject "" do |out, c|
out << @binding.content_tag(:td, c)
end.html_safe
end
end