haml + rails3 + with_options сломан? - PullRequest
       1

haml + rails3 + with_options сломан?

0 голосов
/ 05 января 2011

Я решил перенести свой проект rails2 на rails3 (и ruby ​​1.9.2).У меня есть такой шаблон:

%table
  %thead
    - I18n.with_options :scope => [:activerecord, :attributes, :segment] do |i18n|
      %tr 
        %th= i18n.t :name                                                                                                     
        %th= i18n.t :network
        %th= i18n.t :vlan
        %th 
  %tbody
    ...something here...

Он отлично работает на rails2 в режимах разработки и производства.Но на рельсах 3.0.3 и haml 3.0.25 производственный режим генерирует неверный html: http://pastebin.com/mJLk8sSs, тег 'table' появляется дважды (и thead также повторяется дважды).

В режиме разработки html верен,Это также правильно в производстве, если я установил «уродливую» опцию haml в false.

1 Ответ

0 голосов
/ 07 января 2011

Эта проблема была исправлена ​​в rails 3.0.2 (насколько я могу судить, используя только erb)

see: https://rails.lighthouseapp.com/projects/8994/tickets/4429-templates-that-use-with_options

Кажется, все еще не работает при использовании rails 3.0.3 с хамлом 3.0.25.В списке рассылки haml было несколько разговоров об этом, хотя я не думаю, что что-то еще было сделано.

(http://osdir.com/ml/haml/2010-08/msg00107.html)

Чтобы решить эту проблему, я просто удалил with_options из своих шаблоновВ качестве альтернативы вы можете назначить свои параметры переменной и передать ее каждому вызову t.

 - i18n_options = {:scope => [:activerecord, :attributes, :segment]}
 %tr 
    %th= t :name,    i18n_options                                           
    %th= t :network, i18n_options
    %th= t :vlan,    i18n_options
...