2012-01-25 12 views
0

私は自分のアプリケーションを実稼働サーバーとステージングサーバーで実行しています。見た目が同じ2台のサーバー上で異なる書式の動作

両方のコードで同じバージョンのコードが実行されていますが、サーバーはレール(3.1.3)、宝石、データベーススキーマのバージョンが同じです...私は違いを見つけることができません。

しかし、2つのサーバーで同じものを表示しないformtastic(2.0.0.rc5)でレンダリングされたフォームがあります。プロダクションでは、Formtasticはビューが管理モジュールにあることを正しく考慮していないようです。

問題の部分がapp/views/admin/composers/_form.html.erbであり、それの関連する部分がある:等...

<%= semantic_form_for @composer, :url => @composer.new_record? ? admin_composers_path : admin_composer_path(@composer) do |form| %> 
    <%= form.inputs do %> 
     <%= form.input :name %> 

...

注意(として期待通りの私のステージングサーバー上でフォームがレンダリングidinputフィールド)のname

<form accept-charset="UTF-8" action="/admin/composers" class="formtastic admin_composer" id="new_admin_composer" method="post" novalidate="novalidate"> 
    <div style="margin:0;padding:0;display:inline"> 
    <input name="utf8" type="hidden" value="&#x2713;" /> 
    <input name="authenticity_token" type="hidden" value="rotbxUCJeZJuAY6eMRKaQKYdiPN0tlfQSKIeCj6VBUE=" /> 
    </div> 
    <fieldset class="inputs"> 
    <ol> 
     <li class="string input required stringish" id="admin_composer_name_input"> 
     <label class=" label" for="admin_composer_name">Name<abbr title="required">*</abbr></label> 
     <input id="admin_composer_name" maxlength="255" name="admin_composer[name]" type="text" /> 

...等...

本番サーバー上

、しかし(間違ったidname注意してください):

<form accept-charset="UTF-8" action="/admin/composers" class="formtastic composer" id="new_composer" method="post" novalidate="novalidate"> 
    <div style="margin:0;padding:0;display:inline"> 
    <input name="utf8" type="hidden" value="&#x2713;" /> 
    <input name="authenticity_token" type="hidden" value="qt++LTRdS+V28dvTRHA7h0vGhSKSoINP8cTjLRCk088=" /> 
    </div> 
    <fieldset class="inputs"><ol> 
    <li class="string input required stringish" id="composer_name_input"> 
     <label class=" label" for="composer_name">Name<abbr title="required">*</abbr></label> 
     <input id="composer_name" maxlength="255" name="composer[name]" type="text" /> 

...等...

私は、多分何かがどこかにキャッシュされたことを心配してきたが、私が言う限り、すべてを生産に再導入するように指示しました。

思考?

+0

Yの場合運用サーバー上のスタックを取り出して開発モードに置いても問題はありますか? –

+0

プロダクションサーバーでアプリケーションを起動するが、ステージングモードを指定することを意味しますか?良い提案、私はそれを試してみましょう。 FWIW、私は2つの環境の間に行動のその他のわずかな違いがあることに気付きました。そのため、私が紛失している2つの間に何か異なるものがなければなりません。 – denishaskin

答えて

0

私がと思ったのは、だと思いましたが、なぜそれが1つの環境で動作していたのか、他の環境で動作していないのかまだ分かりません。

controllers/admin/composers_controller.rbコントローラでの私の新しい方法は、最初のように見えた:私は実際にあったことが必要なもの、管理モジュールのすべてを置くのルートを行っていたので、

(基本的に)
def new 
    @composer = Composer.new 
end 

しかし:

def new 
    @composer = Admin::Composer.new 
end 

(私はclass Admin::Composer < Composerの簡単なトリックを使用しての代わりに、非名前空間モデルを参照するために名前空間コントローラを取得しようとしている。)

関連する問題