Joe Smith wrote:
I'm trying to build an WebFTP application in Rails for some practice.
Here is a link located in a partial named _display_file that is called by a partial named _list_files. A similar link is created for every directory in the FTP
<%= link_to_remote filename , :url => {:action => 'chdir' , :ftp_dir => filename}, :update => 'ftp_div' %>
It should, to my understanding, make a call to the 'chdir' action and use the results to update the ftp_div.
The controller action 'chdir' is shown below:
def chdir @ftp = session['ftp']
@ftp.chdir( params[ :ftp_dir ] ) session['ftp'] = @ftp @list = @ftp.list("-a") end
btw, I can store the ftp object inside a session because I've enabled memory_cache instead of other session types. So that's not the issue, it works without the AJAX.
Finally the file chdir.rjs is shown below:
page.replace_html("ftp_div" , :partial => "list_files" , :object => @list)
So basically, the user should be able to click on the directory and the directory listing should be updated without a page refresh. Instead I get this error when click on one of the links:
RJS error:
TypeError $(element) has no properties
Afterwords I get a "notice" box containing what appears to be the code I would like to appear in the ftp_div division... It looks something like this:
Element.update("ftp_div", "<!-- Start FTP List table --> <table border=\"1\"> etc... In my experience, javascript doesn't like double quotes (") very much. Maybe try page.replace_html(:ftp_div ... or page.replace_html('ftp_div'... instead?
Regards, Henning