2012-01-25 39 views
0

我有我的應用程序在生產和臨時服務器上運行。兩個看似完全相同的服務器上的不同formtastic行爲

相同版本的代碼在兩個版本上運行,服務器在版本的rails(3.1.3),gem,數據庫模式方面是相同的......我不知道有什麼區別。

但是,我有一個窗體呈現與formtastic(2.0.0.rc5),它不會呈現在2服務器上相同。在生產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,我現在已經注意到這兩種環境之間的其他細微差別,所以我錯過了兩種不同的東西。 – denishaskin

回答

0

嗯,它原來是我想要的它可能是,但我仍然不明白爲什麼它在一個環境,而不是其他工作。

我在controllers/admin/composers_controller.rb控制新方法最初看起來像:

def new 
    @composer = Composer.new 
end 

(主要是),但因爲我要去把一切都放到一個管理模塊中的路線,其實什麼是需要的是:

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

(我用的class Admin::Composer < Composer容易把戲,而不是試圖讓一個命名空間的控制器來指代非命名空間模型。)

相關問題