I figured this out.

The custom associations only work on actual associations (not my fake block_id 
association which really was just an ID with a hack to display the names of the 
records as drop-down values)

When I switched from block_id to block (the actual association), I got it 
working correclty





> On Jun 11, 2015, at 6:06 PM, Jason Fleetwood-Boldt <[email protected]> 
> wrote:
> 
> I am trying to implement this but I can't get it to work:
> 
> https://github.com/activescaffold/active_scaffold/wiki/ 
> <https://github.com/activescaffold/active_scaffold/wiki/>Custom-Association-Options
>  
> <https://github.com/activescaffold/active_scaffold/wiki/Custom-Association-Options>
> 
> Here's my controller:
> 
> class Admin::Scaffold::BlocksTaxonsController < ApplicationController
> 
>   layout "admin_scaffold"
>   protect_from_forgery except: [:create, :update]
> 
> 
>   active_scaffold :blocks_taxon do |config|
>     config.actions = [:create, :list,  :update, :show, :delete, :field_search]
>     config.columns = [:taxon, :block, :position]
>     config.list.columns = [:block, :position, :go_live_at, :kind]
>     config.create.columns = [ :block_id, :go_live_at, :position, :kind]
> 
>     config.columns[:block_id].form_ui = :select   // THIS IS THE SELECT LIST 
> I AM TRYING TO MAKE DYNAMIC
> 
>     config.columns[:kind].form_ui = :select
>     config.columns[:kind].options = { :options =>  {"heading" =>  "heading"}}
> 
>     config.label = "Block Taxons"
>     config.list.sorting = { :position => :asc }
>   end
> end
> 
> 
> 
> Here's my helper:
> 
> module Admin::Scaffold::BlocksTaxonsHelper
>  def options_for_association_conditions(association)
>     byebug
>     if association.name == :block_id
>       # byebug
>       if !Block.roots.all.nil?
>         Block.roots.all.collect{|b| [b.name, b.id]}
>       else
>         super
>       end
>     else
>       super
>     end
>   end
> end
> 
> 
> My debugging statement (byebug) isn't even called --- thus, the 
> options_for_association_conditions method isn't getting called. 
> 
> Instead, I get this:
> 
> NoMethodError - undefined method `collect' for nil:NilClass:
>   active_scaffold (3.4.17) 
> lib/active_scaffold/helpers/form_column_helpers.rb:342:in 
> `active_scaffold_input_enum'
>   active_scaffold (3.4.17) 
> lib/active_scaffold/helpers/form_column_helpers.rb:357:in 
> `active_scaffold_input_select'
>   active_scaffold (3.4.17) 
> lib/active_scaffold/helpers/form_column_helpers.rb:23:in 
> `active_scaffold_render_input'
>   active_scaffold (3.4.17) 
> lib/active_scaffold/helpers/form_column_helpers.rb:10:in 
> `active_scaffold_input_for'
>   active_scaffold (3.4.17) 
> lib/active_scaffold/helpers/form_column_helpers.rb:175:in `form_attribute'
>   active_scaffold (3.4.17) 
> lib/active_scaffold/helpers/form_column_helpers.rb:162:in `render_column'
>   active_scaffold (3.4.17) 
> app/views/active_scaffold_overrides/_form.html.erb:27:in `block in 
> _df4c0d2b9a464dad64b929430d613032'
> 
> 
> 
> 
> 
> What have I missed? I need my select list to be dynamically pulled from the 
> database at runtime. 
> 
> Thanks
> Jason
> 
> 
> 
> ----
> 
> Jason Fleetwood-Boldt
> [email protected] <mailto:[email protected]>
> http://www.jasonfleetwoodboldt.com/writing 
> <http://www.jasonfleetwoodboldt.com/writing>
> 
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "ActiveScaffold : Ruby on Rails Gem" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>.
> Visit this group at http://groups.google.com/group/activescaffold 
> <http://groups.google.com/group/activescaffold>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

----

Jason Fleetwood-Boldt
[email protected]
http://www.jasonfleetwoodboldt.com/writing



-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails Gem" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/activescaffold.
For more options, visit https://groups.google.com/d/optout.

Reply via email to