Hi,
I have a few questions regarding REST and the Authenticity Token. I''m
using a RESTful aproach for my small project and everything worked fine
untill I wanted to destroy a record.
Lets say we have a listing of folder (a folder is just a record) and I
want to destroy one by using this link:
<%= link_to image_tag(''icons/folder_delete.png''), {:url
=>
folder_path(folder.name) }, { :method => :delete, :title =>
''Delete this
folder'', :confirm => "All files and subfolders will be
deleted!\nAre you
sure?" } %>
How come the form generated for this link doesn''t contain a
Authenticity
token? For all my other crud forms I also had to explicitly write the
<%= token_tag %>. This may be the right way, but I remember reading
something on this forum that the Authenticity token is generated
automatically for destroy links and forms.
Another think that I would like to answer is the RESTful urls. In normal
crud actions you rely on the unique id of your record. My project is a
multi user system where a user can create folder, etc. To make the url
more clear for the user, I would like to use the name of a given folder
(record). That is why is use the following : folder_path(folder.name) .
But in my controller, I can''t use redirect_to folder_url(@folder), so I
use something like
redirect_to(folder_path(session[:current_folder].name)) instead.
My question is do I brake some "REST rule" by doing this? Or is there
a
better, more cleaner way for displaying the folder names and still be
using id''s?
Thank you in advance for your replies
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Looks like the Authenticity token problem was a my bad.
But still I can''t seem to delete the record.
In my list lets say the root folder, I have several child folders. Next
to every child folder, I have a delete action:
<%= link_to image_tag(''icons/folder_delete.png''), {:url
=>
folder_path(folder) }, { :method => :delete, :title => ''Delete
this
folder'', :confirm => "All files and subfolders will be
deleted!\nAre you
sure?" } %>
But for some reason, the id points to the folder I am in and not the
folder that I want to delete from the list.
Did I make a wrong turn with REST?
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Michael Rigart wrote:> <%= link_to image_tag(''icons/folder_delete.png''), {:url => > folder_path(folder) }, { :method => :delete, :title => ''Delete this > folder'', :confirm => "All files and subfolders will be deleted!\nAre you > sure?" } %>Forming the link like this <%= link_to image_tag(''icons/folder_delete.png''), {:action => ''destroy'', :id => folder }, { :method => :delete, :title => ''Delete this folder'', :confirm => "All files and subfolders will be deleted!\nAre you sure?" } %> seems to work. But sometims I still get the Authenticity Token error. After a page refresh, everything is back in order. Can this be due to my redirect? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
It looks like the problem with your first attempt is that you are
using link_to_remote semantics with link_to. link_to_remote accepts
the ''url'' option, but link_to expects you to provide the url
either
as the first parameter (a string, possibly via a path statement) or
using the url_for parts like :controller and :action. That''s what
you''ve done in your latest version. You could format it with named
routes like this:
<%= link_to image_tag(''icons/folder_delete.png''),
folder_path(folder),
{ :method => :delete,
:title => ''Delete this folder'',
:confirm => "All files and subfolders will be deleted!\nAre
you sure?" }
%>
If you want to use the folder name every time time you refer to a
folder you can override the to_param method for your Folder class so
that it returns the folder name. By default it returns the record
id. Two caveats:
1. If you use the name rather than the id make sure you validate for
uniqueness.
2. You''ll have to make sure you do some sanitizing for the name (e.g.,
urls cannot use a space and several other characters).
Could #2 be related to your occasional problem with deleting folders?
That is, does it happen consistently when you delete a folder with a
space in the name?
On May 19, 8:15 am, Michael Rigart
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> Michael Rigart wrote:
> > <%= link_to image_tag(''icons/folder_delete.png''),
{:url =>
> > folder_path(folder) }, { :method => :delete, :title =>
''Delete this
> > folder'', :confirm => "All files and subfolders will
be deleted!\nAre you
> > sure?" } %>
>
> Forming the link like this
>
> <%= link_to image_tag(''icons/folder_delete.png''),
{:action => ''destroy'',
> :id => folder }, { :method => :delete, :title => ''Delete
this folder'',
> :confirm => "All files and subfolders will be deleted!\nAre you
sure?" }
> %>
>
> seems to work. But sometims I still get the Authenticity Token error.
> After a page refresh, everything is back in order. Can this be due to my
> redirect?
>
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
@Andy: thank you for your good reply. It was certainly a dumb mistake of my part with the link_to helper. I can''t believe I overlooked that. You sure helped me in the right direction conserning using the name attribute instead of the id. I have allready changed everything back for using id''s and will change them back using names after I tighten the system. My second problem with the Authenticity token was due to the fact the the :secret in my application controller was not commented anymore. And that gave some unexpected errors. Seems like I don''t understand the whole Authenticity Token system yet. Can anyone provide me with a site where I could read upon the subject more in detail? Thank you in advance for the great help. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---