2012-07-27 43 views
3

創建具有這些模型示例,新協會「belongs_to的」:Activeadmin的形式

class Post < ActiveRecord::Base 
    belongs_to :category 
end 

class Category < ActiveRecord::Base 
    has_many :posts 
end 

想象我有一個表格,以創造新的職位,在默認情況下,我得到一個選擇可用的類別清單,但什麼如果我想從「新/編輯帖子」表單創建新類別?

完美的是有一個按鈕與選擇框,彈出一個窗口來創建一個新的類別。

比創建一個新類別然後創建一個新帖子好。

我總是看到的是創建has_many關聯,但不是belongs_to之一。

謝謝

回答

0

我覺得你有點問這裏幾個問題。我要說的是,更重要的是如何創建與其通常構建方式相反的方向(因爲這是我知道如何回答的)。我會專注於此。

爲了簡單起見,我將只定義一個帶有標籤的簡單文本字段,您可以將其作爲表單的一部分填寫。

= label_tag :new_category_name 
= text_field_tag :new_category_name 

在你的控制器中,你可以像這樣構建新的類別。

@post.build_category(name: params[:new_category_name]) 

如果您保存您的@post傳統的方式,那麼該類別將在相同的事務後創建的,因此如果失敗就不會創建類別。如果您希望它保存類別,則不管您可以撥打@post.create_category來代替。

這裏的文檔: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

在表奇異協會(一個對一個),與您的型號名稱替換other

我想的另一個問題是如何讓它在視圖中看起來不錯。你當然有選擇如何使它看起來不錯。您可以按照您的建議創建一個彈出窗口。你也可以使用AJAX發送一個小的xhr請求。我也見過很多組合選擇/文本框。