我有一个user_controller,其中包含此功能:
def process_csv
puts 'processing csv file'
end
然后我有一个带有“link_to”标签的show.html.erb文件。
<%= 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 %>
这是我的佣金路线的输出:
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
这是我的routes.rb文件
resources :users do
collection do
get:process
end
end
资源:列表
当我点击show.html.erb文件中的链接时。我希望被引导到process.html.erb视图。相反,我得到一个错误:
Routing Error
No route matches [GET] "/assets"
我尝试过很多切换事物的组合,但是还没有任何工作。所以我想知道是否有人可以帮助我。
谢谢,
答案 0 :(得分:1)
错误是由资产引起的,而不是&#39;路由&#39;所以请确保您使用的是&#39; asset-pipeline&#39;正确。
如果您正处于开发阶段,那么
模式,请将所有图像/ js / css放在&#34; app / assets&#34;文件夹中。
如果您正在生产&#39;模式,请确保您已完成此操作:bundle exec rake assets:precompile
有关资产管道的更多信息,请参阅:http://guides.rubyonrails.org/asset_pipeline.html#in-production
顺便说一下,由于您使用的是RESTful路线,请修改您的“link_to&#39;来自:
<%= link_to 'Parse CSV', {:controller => "users", :action => "process" } %>
到:
<%= link_to 'Parse CSV', process_csv_users_path %>
同时,给相应的动作一个更易读的名称:
resources :users do
collection do
get :process_csv
end
end
并在您的控制器中:
class UsersController ...
def process_csv
puts "bla bla bla"
end
end