[英]Rails: Using accepts_nested_attributes_for in Nested Model Form
[英]Rails nested form with accepts_nested_attributes_for with an unfortunate model name
我有一個名為“ Controller”的父模型(成熟的應用程序,不是我的決定)
belongs_to :controller
accepts_nested_attributes_for :controller
形成:
= f.fields_for :controller do |c|
= c.hidden_field :id, :value => @controller.id
= c.text_field :slw_type
不會顯示。
= f.fields_for :literally_anything_else do |c|
= c.hidden_field :id, :value => @controller.id
= c.text_field :slw_type
如果將變量名更改為其他任何名稱,則將生成表單。 我預感這是Rails專用的保留名稱。
題:
有什么問題? 我該如何做呢?
問題在於父模型尚未與子模型關聯。 我沒有提供所有必要信息的錯誤。
這工作了。
def new
@controller = Controller.find(params[:controller_id])
@inspection = Inspection.new(:controller => @controller)
因此,我的fields_for表單生成器也起作用。
選擇一些無害的變量名。 not_really_a_controller
或其他。 將其用於變量和表單。 然后,在您的實際控制器(例如ActionController :: Base后代)中,重命名傳入的參數,以使模型不知道任何不同,例如:
before_filter :filter_params
private
def filter_params
if params[:not_really_a_controller]
params[:controller] = params.delete(:not_really_a_controller)
end
end
過去,出於類似原因,我使用了此策略,盡管並非專門針對controller
。 值得一試!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.