Thanks for all helpful replies and additional comments! I will have some more refactoring to do ; ) Finally I now get what this RESTful is about (didn’t play with it earlier). Point about security is taken. Gert
On 10 Feb 2014, at 15:18, David Precious <[email protected]> wrote: > > I'd do what James said - change your template so that the form submits > to /edit/:id (e.g. <form action=/edit/42" method="post">), then change > your edit route to post '/edit/:id' => sub { ... } > > That'll handle it nicely, and is a bit more RESTful, too. > > Also, random comments: > > In the get route, you load the data straight from a YAML file, but in > the post route, you call get_AoH_imagelist() to get it - incomplete > refactor, perhaps? > > When you say: > > my $data = get_AoH_imagelist(); > my @data = @{$data} > > You could condense that to: > > my @data = @{ get_AoH_imagelist() }; > > > > On Mon, 10 Feb 2014 14:37:29 +0100 > Gert van Oss <[email protected]> wrote: > >> Hi, >> >> I’m trying to build a small app to comment on images. Probably I’m >> almost there but currently stuck with updating a ‘file.yml' by a >> html-form. >> >> I’ve made two routes (shown below) “get ‘/:id/edit’ for showing the >> form with the particular image to comment on. When hitting save the >> ‘post ‘/edit’ will be called. My problem is that the post route >> doesn’t have the $id initialised. Is there someone around who can >> tell me how to solve this or point to me what I’m doing wrong? >> >> Thanks, >> Gert >> >> The structure is an AoH. >> The file.yml is like >> >> --- >> - collection: '' >> description: good >> id: 0 >> imgf: photo.jpg >> tags: '' >> - collection: '' >> description: '' >> etc.. >> >> ————end of yaml >> >> >> #--------------------------------------------------------------------- >> # >> # get EDIT >> # >> #--------------------------------------------------------------------- >> get '/:id/edit' => sub { >> my $filename = >> Dancer::FileUtils::read_file_content( >> Dancer::FileUtils::path( setting('appdir'), 'myImages.yml' ) >> ); my $data = from_yaml $filename; >> my @data = @{$data}; >> >> #print Dumper \@data; >> my $id = param('id'); >> template 'edit', { data => $data[$id], id => $id, }; >> }; >> >> #--------------------------------------------------------------------- >> # >> # post EDIT >> # >> #--------------------------------------------------------------------- >> >> post '/edit' => sub { >> my $data = get_AoH_imagelist(); >> my @data = @{$data}; >> my $id = param('id'); >> $data[$id] { description}= params->{description} ; >> #$data[2] { description}= params->{description} ; >> # this works but then all descriptions end up in the third group >> of hashes. my $filename = "myImages.yml"; >> write_file $filename, to_yaml($data); >> redirect '/'; >> }; >> > > > > -- > David Precious ("bigpresh") <[email protected]> > http://www.preshweb.co.uk/ www.preshweb.co.uk/twitter > www.preshweb.co.uk/linkedin www.preshweb.co.uk/facebook > www.preshweb.co.uk/cpan www.preshweb.co.uk/github > > > _______________________________________________ > dancer-users mailing list > [email protected] > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list [email protected] http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
