2010-08-16 26 views
0

我是rails和mongodb的新手,並嘗試創建類別樹。rails form_for刷新時創建一個新的數據庫條目,無需提交表單

無論何時刷新頁面,都會將新條目放入數據庫。 我沒有點擊'提交'按鈕,只是頁面刷新。

的形式如下

 
<%= form_for Activity.create do |f| -%> 
    <%= f.text_field :activity_name % > 
<%= f.submt "add action" %< 
<% end %> 

我的模型是

 
class Activity 
     include MongoMapper::Document 

    key :activity_name, :type => String 
    key :parent,  :type => ObjectId 
    key :acnestors, Array 

    timestamps! 
end 

我的路線有活動

 
map.activity '/activity/:activity_id', :controller => 'activities', :action => 'show' 

雖然我打電話從表單創建,一個條目我在我的控制器中創建函數是空的。 表單通過渲染包含在顯示頁面中,但這應該不重要。

任何想法爲什麼頁面刷新將作爲表單提交?

+0

有一個錯字: '<%= f.submt 「添加操作」 %<' 應該是: '<%= f.submit 「添加操作」 %>' – 2010-08-17 08:38:51

回答

0

您正在呼叫您的表單助手中的Activity.create。這會在每次加載頁面時創建一個新對象(在Rails的意義上,它也會將它保存到數據庫)。

+0

由於JDL,我結束了form_for:activity,:url => {:action =>「new」} do | f | 我希望是對的,似乎已經解決了這個問題。 – pedalpete 2010-08-16 21:46:13

+0

該行爲應該是創建。您的新動作應該用於設置您計劃在表單中填充的對象(編輯動作相同,除了它將抓取現有記錄而不是實例化新動作)。 – jdl 2010-08-16 21:50:12