Rails嵌套了一个带有accepts_nested_attributes_for的表单,该表单的模型名称不正确



我有一个名为"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

如果将变量名更改为其他名称,则会生成表单。我有一种预感,这是一个铁路专用的保留名称。

问题:

怎么了?我该怎么做?

已解决:

问题是父模型还没有与子模型相关联。我的错误是没有提供所有必要的信息。

这起到了作用。

def new
    @controller = Controller.find(params[:controller_id])
    @inspection = Inspection.new(:controller => @controller)

因此,我的fields_for表单生成器也起了作用。

选择一些无害的变量名。CCD_ 1或其它什么。将其用于变量和表单。然后,在实际控制器(例如ActionController::Base subscendent(中,重命名传入的param,这样模型就不会有任何不同,比如:

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。不过值得一试!

相关内容

  • 没有找到相关文章

最新更新