Daniel Naab
2006-Apr-28 23:27 UTC
[Rails] file_column with polymorphic table relationship?
Hello,
I''m just starting out with both Rails and Ruby, so I hope this
isn''t too
simple of a question - but I''ve been struggling to find a solution.
I''m using the file_column plugin to handle image uploads and thumbnail
generation. In addition, I''ve wrapped the image into a polymorphic
table
so I can have uploaded images associated with multiple datatypes.
However, I''m having trouble determining how to reference the
file_column
field in the images table from an associated view.
As an example, here''s a condensed version of the relationships:
create_table :images do |t|
t.column :file, :string
t.column :illustrated_id, :integer
t.column :illustrated_type, :string
end
create_table :thing do |table|
table.column :name, :string
table.column :description, :string
end
...and models:
class Thing < ActiveRecord::Base
has_one :image, :as => :illustrated
end
class Image < ActiveRecord::Base
belongs_to :illustrated, :polymorphic => true
file_column :file, :magick => {
:versions => { "thumb" => "100x100",
"medium" => "640x480>" },
:attributes => { :format => "JPG" }
}
end
Now, in an Image view - which in practice I don''t think I would use,
but
for the sake of demonstration - I can do something like this to get the
uploads working without a problem:
<%= file_column_field "image", "file" %>
But how would I do the same from the so-called "Thing" view? Or is it
not
possible to handle in the view without writing a model method? I''d
prefer
not to, as there would be several models with duplicated code.
Thank you!
Dan Naab
Daniel, not sure if reading this correctly, but to display a photo that
belongs to Thing you could do something like this:
In the controller:
@image = @thing.image
In the view:
<%= image_tag(url_for_file_column("image", "file")) if
@image %>
To upload is a bit more tricky (mainly on the controller side). If
that''s what you''re wanting, post back, and I''ll show
you how I did it.
Daniel Naab wrote:> Hello,
>
> I''m just starting out with both Rails and Ruby, so I hope this
isn''t too
> simple of a question - but I''ve been struggling to find a
solution.
>
> I''m using the file_column plugin to handle image uploads and
thumbnail
> generation. In addition, I''ve wrapped the image into a
polymorphic table
> so I can have uploaded images associated with multiple datatypes.
> However, I''m having trouble determining how to reference the
file_column
> field in the images table from an associated view.
>
> As an example, here''s a condensed version of the relationships:
>
> create_table :images do |t|
> t.column :file, :string
> t.column :illustrated_id, :integer
> t.column :illustrated_type, :string
> end
>
> create_table :thing do |table|
> table.column :name, :string
> table.column :description, :string
> end
>
> ...and models:
>
> class Thing < ActiveRecord::Base
> has_one :image, :as => :illustrated
> end
>
> class Image < ActiveRecord::Base
> belongs_to :illustrated, :polymorphic => true
> file_column :file, :magick => {
> :versions => { "thumb" => "100x100",
"medium" => "640x480>" },
> :attributes => { :format => "JPG" }
> }
> end
>
>
> Now, in an Image view - which in practice I don''t think I would
use, but
> for the sake of demonstration - I can do something like this to get the
> uploads working without a problem:
>
> <%= file_column_field "image", "file" %>
>
> But how would I do the same from the so-called "Thing" view? Or
is it not
> possible to handle in the view without writing a model method?
I''d prefer
> not to, as there would be several models with duplicated code.
>
> Thank you!
>
> Dan Naab
>
>
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>
>
Daniel Naab
2006-Apr-29 21:36 UTC
[Rails] file_column with polymorphic table relationship?
On Sat, April 29, 2006 3:07 am, Chris T wrote:> To upload is a bit more tricky (mainly on the controller side). If > that''s what you''re wanting, post back, and I''ll show you how I did it.Sorry for not being more clear. I am indeed asking how to do an upload from the "Thing" view. Thanks, Dan