I think that what this code above would restrict the costcode options, not define the default one. Maybe for this, you should use after_render_field as seen here:
https://github.com/activescaffold/active_scaffold/wiki/Chaining-Form-Fields I have never done that, it's just a shot. 2011/10/15 Cláudio Forain <[email protected]>: > Sorry, Im kinda tired, what I meant was > > def options_for_association_conditions(association) > if association.name == :cost_code > ["cost_codes.id" IN (?) , @record.subcontractor.costcode_id] > else > super > end > > That will solve the error, but let me think further about your relationship. > > On Sat, Oct 15, 2011 at 12:04 PM, JB <[email protected]> wrote: >> Hmm . . . I'm no expert either, but that just throws an exception: >> >> /Users/jeff/rails/reconn/app/helpers/orders_helper.rb:5: syntax error, >> unexpected tCONSTANT, expecting ']' >> ["cost_codes.id" IN @record.costcode_id] >> ^ >> /Users/jeff/rails/reconn/app/helpers/orders_helper.rb:5: syntax error, >> unexpected ']', expecting keyword_end >> >> But I think you're missing my model. There are no cost_codes >> association anywhere. The cost_codes table is an "admin" table. The >> order and sub_contractor models have a cost_code_id column, but the >> cost_code model does not have a foreign key. The idea is, when I >> create a sub_contractor I assign a "default" cost_code to >> sub_contractor.cost_code_id. Then, when I create an order and select a >> sub_contractor, I want order.cost_code_id to equal the >> sub_contractor.cost_code_id default. But a user can always come back >> later to the order and assign a different cost_code_id to it. Does >> that make sense? >> >> On Oct 15, 9:36 am, Cláudio Forain <[email protected]> wrote: >>> I see. I'm not an expert, but I will try to help :p >>> Considering your tables have these fields: >>> >>> Order: subcontractor_id, costcode_id >>> Subcontractor: costcode_id >>> >>> Well, here I would try to do something like this in options_helper.rb >>> >>> module OrdersHelper >>> def options_for_association_conditions(association) >>> if association.name == :cost_code >>> ["cost_codes.id" IN @record.costcode_id] >>> else >>> super >>> end >>> end >>> >>> That worked around here, you should try. >>> end >>> >>> On Sat, Oct 15, 2011 at 11:06 AM, JB <[email protected]> wrote: >>> > I looked at the wiki article and still couldn't seem to figure it out. >>> >>> > And no, my model really doesn't have the reverse association. The cost >>> > codes are just a table that provides a bunch of values that can be >>> > selected for a drop down list that is used in multiple places. >>> >>> > On Oct 15, 8:59 am, Cláudio Forain <[email protected]> wrote: >>> >> Maybe this will help: >>> >>> >>https://github.com/activescaffold/active_scaffold/wiki/Chaining-Form-... >>> >>> >> PS: Just out of curiosity, shouldn't your model be something like this? >>> >>> >> class CostCode < ActiveRecord::Base >>> >> has_many :subcontractors >>> >> has_many :orders >>> >> end >>> >>> >> On Sat, Oct 15, 2011 at 10:47 AM, JB <[email protected]> wrote: >>> >> > I have the following model: >>> >>> >> > class CostCode < ActiveRecord::Base >>> >> > end >>> >>> >> > class SubContractor < ActiveRecord::Base >>> >> > has_many :orders >>> >> > belongs_to :cost_code >>> >> > end >>> >>> >> > class Order < ActiveRecord::Base >>> >> > belongs_to :sub_contractor >>> >> > belongs_to :cost_code >>> >> > end >>> >>> >> > The UI for Order.sub_contractor is a select box. When I select the >>> >> > sub_contractor on the order, how can I chain the fields so that the >>> >> > sub_contractor.cost_code is used to populate the order.cost_code? >>> >>> >> > -- >>> >> > You received this message because you are subscribed to the Google >>> >> > Groups "ActiveScaffold : Ruby on Rails plugin" group. >>> >> > To post to this group, send email to [email protected]. >>> >> > To unsubscribe from this group, send email to >>> >> > [email protected]. >>> >> > For more options, visit this group >>> >> > athttp://groups.google.com/group/activescaffold?hl=en. >>> >>> > -- >>> > You received this message because you are subscribed to the Google Groups >>> > "ActiveScaffold : Ruby on Rails plugin" group. >>> > To post to this group, send email to [email protected]. >>> > To unsubscribe from this group, send email to >>> > [email protected]. >>> > For more options, visit this group >>> > athttp://groups.google.com/group/activescaffold?hl=en. >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "ActiveScaffold : Ruby on Rails plugin" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/activescaffold?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "ActiveScaffold : Ruby on Rails plugin" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/activescaffold?hl=en.
