![](/img/trans.png)
[英]Rails Associations - Creating a new record through a form with belongs_to
[英]Activeadmin creating new associations “belongs_to” in a form
擁有這些示例模型:
class Post < ActiveRecord::Base
belongs_to :category
end
class Category < ActiveRecord::Base
has_many :posts
end
想象一下,我有一個表單來創建新帖子,默認情況下,我得到一個包含可用類別列表的選項,但是如果我想從“新/編輯帖子”表單創建新類別呢?
使用彈出窗口以創建新類別的選擇框的按鈕將是完美的。
比創建新類別然后創建新帖子更好。
我一直看到的是創建has_many關聯,但不是belongs_to one。
謝謝
我想你在這里問幾個問題。 我要說的是,更重要的是如何在與其通常構建方式相反的方向上創建關聯(因為那是我知道如何回答的關聯)。 我會專注於那個。
為簡單起見,我將只定義一個帶有標簽的簡單文本字段,您可以將其作為表單的一部分填寫。
= 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請求。 我也見過花哨的組合選擇/文本框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.