Reputation: 9579
I have a users_controller which has this function in it:
def process_csv
puts 'processing csv file'
end
Then I have a show.html.erb file with a "link_to" tag on it.
<%= link_to 'Click HERE to open file', @user.image.url %><br/><br/><br/>
<%= label_tag(:q, "Parse CSV File:") %><br/>
<%= link_to 'Parse CSV', {:controller => "users", :action => "process" } %>
<% end %>
This is the output of my rake routes:
process_users GET /users/process(.:format) users#process
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
listings GET /listings(.:format) listings#index
POST /listings(.:format) listings#create
new_listing GET /listings/new(.:format) listings#new
edit_listing GET /listings/:id/edit(.:format) listings#edit
listing GET /listings/:id(.:format) listings#show
PUT /listings/:id(.:format) listings#update
DELETE /listings/:id(.:format) listings#destroy
This is my routes.rb file
resources :users do
collection do
get:process
end
end
resources :listings
When I click on the link in the show.html.erb file. I was hoping to be directed to the process.html.erb view. Instead I get an error:
Routing Error
No route matches [GET] "/assets"
Ive tried a lot of combinations of switching things however nothing has worked as yet. So Im wondering if anyone can give me a hand.
Thanks,
Upvotes: 0
Views: 145
Reputation: 21549
the error is caused by 'assets', but not 'routes', so please make sure you are using 'asset-pipeline' correctly.
if you are under 'development' mode, please put all the image/js/css under "app/assets" folder.
if you are under 'production' mode, please make sure you have done this: bundle exec rake assets:precompile
for more information of assets pipeline , please refer to: http://guides.rubyonrails.org/asset_pipeline.html#in-production
BTW, since you are using RESTful routes, please modify your 'link_to' from :
<%= link_to 'Parse CSV', {:controller => "users", :action => "process" } %>
to:
<%= link_to 'Parse CSV', process_csv_users_path %>
at the same time, give the corresponding action a more readable name:
resources :users do
collection do
get :process_csv
end
end
and in your controller:
class UsersController ...
def process_csv
puts "bla bla bla"
end
end
Upvotes: 1