Ruby on rails views без смешивания ruby ​​и html - PullRequest
0 голосов
/ 15 октября 2011

Я начал изучать Rails. Что мне не нравится, так это то, что он использует JSP-подобный код, смешивая html и ruby. Я знаком с JSF 2.0 и мне нравится его подход. Есть ли что-то похожее в Rails?

Хороший пример для сравнения можно найти на http://www.mkyong.com/jsf2/jsf-2-datatable-example/

<h:dataTable value="#{order.orderList}" var="o"
    styleClass="order-table"
    headerClass="order-table-header"
    rowClasses="order-table-odd-row,order-table-even-row" >

    <h:column>
        <!-- column header -->
        <f:facet name="header">Order No</f:facet>
        <!-- row record -->
        #{o.orderNo}
    </h:column>

    <h:column>
        <f:facet name="header">Product Name</f:facet>
        #{o.productName}
    </h:column>

    <h:column>
        <f:facet name="header">Price</f:facet>
        #{o.price}
    </h:column>

    <h:column>
        <f:facet name="header">Quantity</f:facet>
        #{o.qty}
    </h:column>

</h:dataTable>

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

HAML - отличный выбор.http://haml -lang.com / tutorial.html Это может быть не совсем то, что вы ищете, но я настоятельно рекомендую его, если вы не довольны ERB.

1 голос
/ 17 октября 2011

Я взял пример и попытался найти разумный код Rails для сравнения.После этого я хотел бы взглянуть на различия:

Сначала пример HAML

%table.order-table  
  %thead
    %tr
      - ["Order No", "Product Name", "Price", "Quantity"].each do |h|
        %th.order-table-header
          h 
  %tbody
    - order.orderList.each do |o|
      %tr
        [#orderNo, #productName, #price, #qty].each do |s|
          %td= o.send(s)

В нем есть части, которые мне тоже не нравятся, и мне не хватает четного /странная вещьНо код так же понятен, как и ваш пример.Если вы сделаете еще один шаг и создадите партиалы для всех маленьких кусочков, то, на мой взгляд, это не станет яснее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...