Hi Ignacio,

Thanks! I don't think I need a many to many in this app, but that might change. 
It's a massive amount of files in each project so I guess I'll just have to 
review as I go...

I had to add paperclip to the uploads model, as I couldn't get the routing to 
the files right when I just copied file info to the uploads model. I think that 
would've been cleaner but it doesn't matter at all.

Ended up with this:

  def update
   
    hobo_update do    
        Upload.create(
           :attachment=>this.prattach,
           :name=>this.prattach_file_name,
           :attachment_file_name =>this.prattach_file_name, 
           :attachment_content_type =>this.prattach_content_type, 
           :attachment_file_size =>this.prattach_file_size, 
           :attachment_updated_at =>this.prattach_updated_at,
           :projectfile_id => this.id
           )
      respond_to do |format|         
        format.js   { hobo_ajax_response }
        format.html { redirect_to @projectfile }
      end
    end
  end



Arve
On Oct 31, 2012, at 6:53 PM, Ignacio Huerta <[email protected]> wrote:

> Hi Arve,
> 
> Sory for the late response. I'm glad sgagility worked for you as an example. 
> I've looked at your code and it looks very nice.
> 
> From your explanation, you might wanna take a look at using a many-to-many 
> relatinship between projects and project files, but I'm not really sure if 
> you need that. You have an example in the agility tutorial if you do.
> 
> Regards,
> Ignacio
> 
> El 26/10/12 12:30, Arve Voldsund escribió:
>> Hi Ignacio,
>> 
>> The sgagility project has been tremendous help for me in trying to get a 
>> grip of how things work. I find it a bit hard to understand all the 
>> flexibility that lies within hobo, and sgagility sort of opened up a few 
>> doors so to say. I first started using rails when I found Hobo and was 
>> pretty fresh at Ruby as well, so there has been a few things to sort out, 
>> but it is coming together now.
>> 
>> To the point:
>> 
>> What I wanted was to have a project that is merely a description of what 
>> kind of data the project represents, and then files should be attached to 
>> this project as a set belonging to a projectfile. In other words: The 
>> projectfile should be a container that keeps track of which uploads that 
>> belong to a certain project.
>> 
>> I understood from your comments (thanks) that I missed an abstraction layer, 
>> and changed the relationships as follows:
>> 
>> Project has has many projectfiles and projectfiles has many uploads.
>> 
>> The idea behind this is that any project can be created and assigned to any 
>> set of projectfiles, and then the project needs to own the projectfile 
>> container which again owns the uploads.
>> 
>> The uploads are created from the projectfile edit-page (since it is required 
>> to create a projectfile before uploading).
>> 
>> It is all working now, and the controller for projectfiles looks like this, 
>> and I'd be glad to get feedback on it if it should be done in another way:
>> 
>> class ProjectfilesController < ApplicationController
>> 
>>   hobo_model_controller
>> 
>>   auto_actions :all
>> 
>>    def index
>>      hobo_index do
>>        @projectfile = Projectfile.new
>>      end
>>    end
>> 
>>   def show
>>     hobo_show do
>>       if params[:style]
>>         send_file @projectfile.prattach.path(params[:style])
>>       else
>>         render
>>       end
>>     end
>>   end
>> 
>>   def update
>>     hobo_update do
>>       Upload.create(
>>          :file_name =>this.prattach_file_name,
>>          :file_type =>this.prattach_content_type,
>>                  :file_size =>this.prattach_file_size,
>>             :file_created =>this.prattach_updated_at,
>>             :projectfile_id => this.id
>>             )
>> 
>>       respond_to do |format|
>>         format.js   { hobo_ajax_response }
>>         format.html { redirect_to @projectfile }
>>       end
>>     end
>>   end
>> 
>> end
>> 
>> 
>> 
>> Best,
>> Arve
>> 
>> On Oct 25, 2012, at 9:09 PM, Ignacio Huerta <[email protected]> wrote:
>> 
>>> Hi Arve,
>>> 
>>> I'm a bit confused about your models and relationships. If you want to
>>> have several attachments to a project, then you are gonna need a 1-N
>>> relationship:
>>> 
>>>  A project has many projectfiles
>>>  A projectfile belongs to one project
>>> 
>>> Maybe I got the idea wrong, but you are trying to create a multiple
>>> file upload in the edit page of a projectfile. I think it would make
>>> more sense to do it in the edit page of the project. Or maybe I didn't
>>> understand your relationships :P.
>>> 
>>> By the way, there's a working example of multiple file upload (you can
>>> drag 3 attachments in the show of a project) in here:
>>> https://github.com/suyccom/sgagility . I'm afraid I haven't taken much
>>> care of that app (I plan to replace it soon with a cleaner one), and
>>> some parts might be broken, but it might serve as an example.
>>> 
>>> Regards,
>>> Ignacio
>>> 
>>> El 24/10/12 00:22, Arve Voldsund escribió:
>>>> I struggle a bit with a create method for a model with multiple
>>>> file upload, and could really need some advice on this.
>>>> 
>>>> Basically I want the user to create a new projectfile (that's the
>>>> model name) and assign it to a project. This is trivial.
>>>> 
>>>> Then, in the edit-page for that particular projectfile there is a
>>>> file upload using the jQuery file upload plugin which allows
>>>> multiple files. Files upload just fine, but only one file will be
>>>> assigned to the projectfile in the database. I understand why, but
>>>> I do not quite get how to fix it in the create method.
>>>> 
>>>> 
>>>> Arve
>>>> 
>>>> 
>>>> -- You received this message because you are subscribed to the
>>>> Google Groups "Hobo Users" group. To view this discussion on the
>>>> web visit
>>>> https://groups.google.com/d/msg/hobousers/-/9skhe0yG4hUJ. 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/hobousers?hl=en.
>>> 
>>> --
>>> Ignacio Huerta Arteche
>>> http://www.ihuerta.net
>>> Teléfono: 0034 645 70 77 35
>>> Email realizado con software libre
>>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "Hobo Users" 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/hobousers?hl=en.
>>> 
>> 
> 
> -- 
> Ignacio Huerta Arteche
> http://www.ihuerta.net
> Teléfono: 0034 645 70 77 35
> Email realizado con software libre
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Hobo Users" 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/hobousers?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" 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/hobousers?hl=en.

Reply via email to