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.

Reply via email to