acts_as_attachment and belongs_to:

Hi all. I've gotten the acts_as_attachment tutorial to work just fine. However now i'm trying to do something that's not covered and keep running into a brick wall. I'm pretty sure this is a simple concept that I'm just not familiar with yet.

I'd like to association an image with a entry from a different model. I suppose in other words I'm asking how to update two models from one controllers create action. Example:

class TrackImage < ActiveRecord::Base     belongs_to :track     acts_as_attachment :storage => :file_system, :max_size => 300.kilobytes, :content_type => :image     validates_as_attachment end

class Track < ActiveRecord::Base   has_many :track_images end

class Admin::TracksController < ApplicationController ## stuff omitted for brevity's sake   def create     @track = Track.new(params[:track])     if @track.save       flash[:notice] = 'Track was successfully created.'       @track_image = TrackImage.create! params[:track_image]       redirect_to :action => 'list'     else       render :action => 'new'     end   end end

## new.rhtml ##

<%= form_tag({:action => 'create'}, :multipart => true) %>   <%= render :partial => 'form' %>   <%= submit_tag "Create" %> <%= end_form_tag %> <%= link_to 'Back', :action => 'list' %>

## _form.rhtml ## ## stuff omitted for brevity's sake <p><%= file_field 'track', 'track_image' %></p>

The above code is producting this error: undefined method `track_image=' for #<Track:0x2278e10>

## _form.rhtml ## ## stuff omitted for brevity's sake <p><%= file_field 'track', 'track_image' %></p>

The above code is producting this error: undefined method `track_image=' for #<Track:0x2278e10>

You didn't say specifically but I assume there is where you're getting the error? Is that correct? If so, it's exactly as it says. There doesn't exist a track_image method on the Track class. Your relationship indicates that you have many track_images. Therefore you have many track_images, not a single track_image method. Try using a file_field_tag instead or bind the form to the TrackImage class instead.

Michael