This should be a really simple thing, I just haven't figured out how to
do it yet....

I have two models with a has_many, :through => relationship:

class Source < ActiveRecord::Base
  has_many :authorships
  has_many :authors, :through => :authorships

class Author < ActiveRecord::Base
  has_many :authorships
  has_many :sources, :through => :authorships

class Authorship < ActiveRecord::Base
  belongs_to :source
  belongs_to :author


I'm not sure how to create a form for this.  My sources/new form has a
nested form for authorship that currently looks like this (I'm following
the instructions Ryan Bates gives in _Advanced Rails Recipes_ for
dealing with multiple models in one form):

<div class="authorship">

<% new_or_existing = authorship.new_record? ? 'new' : 'existing' %>
<% prefix = "source[#{new_or_existing}_authorship_attributes][]" %>

<% fields_for prefix, authorship do |authorship_form| %>
<p>
  <%= authorship_form.text_field :author_id %>
  <%= link_to_function "remove", "$(this).up('.authorship').remove()" %>
</p>
<% end %>
</div>

This works just fine, and saves the data just fine, but obviously I
would like to be able to type in author.name instead of :author_id.  I
would also be happy to use collection_select here, but haven't been able
to figure out how to do that with a has_many, :through => relationship.

Thank you!
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to