Uploading photos

Hi all,

Learning RoR (and loving it!) to develop a website. A requirement of the
website is enabling users to upload photos to be made viewable
(dynamically) on the website. Is this something I can develop with RoR?

Thanks,
Jeff

Piece of cake… be sure to check out ‘rails paperclip’ via google. Tons
of useful examples.

with rails is a dream , i have an example app that i will update tonight
,
is for new comers and is well commented. if you want to i can give you
the
link. It will be ready by tomorrow.

Jeff S. wrote:

Hi all,

Learning RoR (and loving it!) to develop a website. A requirement of the
website is enabling users to upload photos to be made viewable
(dynamically) on the website. Is this something I can develop with RoR?

I’ve never done it, but lots of people have. All of them recommend the
Paperclip plugin. I think that’s the one point of complete unanimity in
the Rails community. :slight_smile:

Thanks,
Jeff

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

As a learner I have and still looking to find that same solution.
paperclip is a full blown gem. To a student it would be profitable if
anyone who knows how to do it in purely rails, would write a small
example.

Say I have a form that includes submitting to other Models as well.
How do I do that?

jobs/new.html.erb
<% form_for [@job], :html => {:multipart => true } do |f| %>
<%= f.error_messages %>

<%= f.label "title" %>
<%= f.text_field :title %>
"Senior Ruby Developer" or "HTML5 CSS3 Guru"
<dt><%= f.label "Location" %></dt>
  <dd>
  <%= f.text_field :location %>
  <br>
  <span  class="hint">"Lincoln, UK", "Tallinn, Estonia", or

“Anywhere”

Category

<% Catergory.all.each do |category| %>

<dd>
  <label><%= f.radio_button :catergory_id, category.id %> <%=

category.name.titleize %>

<% end -%>

<dt class="tarea"><%= f.label "Job descripton" %></dt>
  <dd class="tarea"><%= f.text_area :description, :size => "70x20"

%>

<dt class="tarea"><%= f.label "How you should apply" %></dt>
  <dd class="tarea">

  <%= f.text_area :apply, :size => "70x6" %>
  <br>
  <span  class="hint">Example: Send your portfolio to

[email protected]

Now then, some`ing about your company. What should they know?
<%= f.label "Name" %>
<%= f.text_field :company %>
Example: 'Safarista Design', 'Safrista Jobs' or '37signals'
<dt><%= f.label :logo %></dt>
<dd>
<%= f.file_field("upload") %>
<br>
<span class="hint">
  Optional &rarr; Your company logo will appear at the top of youur

listing.


190px wide is optimal. If larger we will resize it automatically.

<dt><%= f.label :url %></dt>
<dd>
<%= f.text_field :url  %>
<br>
<span  class="hint">
  Ex: http://www.safarista.com
</span>
<dt><%= f.label :email %></dt>
<dd>
<%= f.text_field :email %>
<br>
<span  class="hint">
  This is where we will send you a confirmation receipt of your

payment and listing.

<%= f.submit 'Step 2: Proceed to preview your ad →' %>

<% end %>

My Models are:

Job
belongs_to :catergory

UPLOAD a file for the logo

def upload
uploaded_io = params[:job][:logo]
File.open(Rails.root.join(‘public’, ‘images’,
uploaded_io.original_filename), ‘w’) do |file|
file.write(uploaded_io.read)
end
end
end

Catergory
has_many :jobs

This is still not working, the image does not upload. Why? Please help
in the simple inbuilt Rails. Am using v2.3.8

http://railscasts.com/episodes/134-paperclip

to upload files without paperclip, you have to save the image details in
the
db and create an attribute accessor

def uploaded_picture=(picture_field)
self.name =
File.basename(picture_field.original_filename).gsub(/^\w._-/,
’ ')
self.content_type = picture_field.content_type.chomp
self.data = picture_field.read
end

but i should warn you that it makes no sense to reinvent the wheel , and
there are many dangers for doing it the wrong way

I would think it is much simpler…

Be sure you have ImageMagick installed (or an alternative)
Be sure your migration defined the logo_file_name, logo_content_type,
logo_file_size in the jobs table.

My example:

class Stage < ActiveRecord::Base

cycling race stage

belongs to a race-year, like 2010 - Vuelta d’Espana

has many stage standings (rider finish order)

has attached images for the route

map and the elevation profile

belongs_to :raceyear
has_many :stagestandings

has_attached_file :map, :styles => {:thumb => ‘100x100>’}
has_attached_file :profile, :styles => {:thumb => ‘100x100>’}
end

<%= form_for @stage, :html => {:multipart => true} do |f| %>

blah blah blah, fields to select raceyear, enter the stage name,
description, terrain and distance, relevant image upload fields
below

<%= f.label :map %> <%= f.file_field :map %>

<%= f.label :profile %> <%= f.file_field :profile %>

<%= f.submit %> <% end %>

Paperclip does all the heavy lifting.

Mr. Winnymann wrote:

As a learner I have and still looking to find that same solution.
paperclip is a full blown gem. To a student it would be profitable if
anyone who knows how to do it in purely rails, would write a small
example.

You have an example: the Paperclip source code.

And if you’re a beginner, then you definitely should not be trying to
rewrite Paperclip.

BTW, you shouldn’t be using

for your forms; they’re not
semantically definition lists.

Best,
–Â
Marnen Laibow-Koser
http://www.marnen.org
[email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs