5

私はhaml 3.1.4とhaml-rails 0.3.5を使用しています

私が抱えている問題は、サーバー (本番) とローカル (テスト) でのみ発生し、開発では発生しません (両方とも同じ gem バージョンを使用しているようです)。

=form_for @thing, :remote => true do |f|
  =hidden_field_tag :template, 'thing'
  %table
    %thead
      %tr
        %th
          Name
        %th
          =image_tag 'cancel.png'
    %tbody
      =f.fields_for :items do |item_fields|
        %tr
          %td
            =f.text_field :name
          %td
  =f.submit 'Save'

次の html 保存テキストを出力します。

<input type='hidden' value='thing' /><table><thead><tr><th>Name</th><th><img src='cancel.png.....' /></tr></thead>

上記のレンダリングされた html が続きます。

テスト/本番と開発の違いを絞り込むにはどうすればよいですか?

何か案は?:)

編集: これはページ上の '@thing' の 2 番目の形式であることに言及する価値があるかもしれません。最初のものはうまくレンダリングされ、2番目のものは問題がある場所です。

4

3 に答える 3

1

私にはいくつかの理論があります。

Haml では、空白は非常に重要です。どこかにタブがあり、他の場所に空白がある可能性はありますか?

あなたform_forのは両方持っていremote: trueますか?これにより、id を再利用している場合に DOM を混乱させる可能性がある余分な div 出力が作成されます。

onを使用していると確信していますか? =onform_forがないと、HTML フォーム タグが出力されません。

残念ながら、私は推測しているだけであり、これらのどれもが開発で機能する理由を説明していません.

おそらくそれは役に立ちます...

于 2013-01-22T00:12:24.707 に答える
0

タグを閉じていないように見えますが、これはあなたの問題ですか?とにかく、test/prod/dev の違いを絞り込むには、/config/フォルダーの内容を確認する必要があります。を使用しRails.env == "development"て環境を選択し、デバッガーを試して違いを探すことをテストすることをお勧めします。

于 2013-01-21T23:20:59.240 に答える
0

2 つの異なるバージョンの haml を使用している可能性があります。「=」の後のスペースがより厳密なバージョンが 1 つある可能性があります。私はそれを次のように書きます:

= form_for @thing, :remote => true do |f|
  = hidden_field_tag :template, 'thing'
  %table
    %thead
      %tr
        %th Name
        %th= image_tag 'cancel.png'
    %tbody
      = f.fields_for :items do |item_fields|
        %tr
          %td= f.text_field :name
          %td
  = f.submit 'Save'
于 2013-01-23T06:47:41.950 に答える