I am attempting to pass a large Ruby hash (@hash) that is already available in my view back to my controller for additional processing. The hash comes from the same controller but it will be processed by a different action.
There are several articles on Stack Overflow about passing a variable (hash or otherwise) from View to Controller using the params hash and they work nicely, however the resulting HTTP GET request is extremely long (in my case) and often a '414 Request-URI Too Large' error is thrown by Apache.
Here is the code I have in my view:
<%= link_to "Go to controller for processing", :controller => 'query', :action => 'parse_data', :hash_contents => @data %>
Here is the code I am using in my controller to process @data:
def parse_data
# take action on :hash_contents which now contains @data
end
Perhaps I shouldn't be using link_to to handle this but I don't know of an alternative to get data back to my controller. I also heard chatter about using a HTTP POST instead of GET (as apparently you can pass along a hidden field) but I'm not certain how to implement that in this scenario. Any help is greatly appreciated!