ActiveScaffold update shows associated record fields when I only want to update the association

StackOverflow https://stackoverflow.com/questions/11336685

  •  19-06-2021
  •  | 
  •  

Domanda

In my application's admin interface, I am using ActiveScaffold for easy record editing:

class Admin::InspectionsController < ApplicationController
  require_role :staff
  protect_from_forgery :only => [:create, :update, :destroy]

  active_scaffold :inspections do |config|
    [:create, :delete].each {|a| config.actions.exclude a}
    config.actions.exclude :nested

    config.update.columns = [ :name, :activity_status, :inspector, :report, :note, :time_window, :inspection_type ]
  end
end

In this case, :activity_status and :inspector are association columns, referring to associated objects. In my scaffold, I want the editor to be able to change which object the foreign key points to, but the above config shows this:

Current Staging view

I only want the inspector itself to be updated, not its fields!

Changing the column to :inspector_id only allows the ID itself to be edited directly.

What am I doing wrong?

È stato utile?

Soluzione

Workaround I've used is to remove all columns from the subform action on the relevant controllers:

class Admin::UsersController < ApplicationController
  active_scaffold :users do |config|
    #...
    config.subform.columns = []
    #...
  end
end

I don't know if there's a better, more elegant way though…

Use the form_ui method for the column in the Inspections controller:

[:activity_status, :inspector].each do |c|
  config.columns[c].form_ui = :select
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top