获取此link_to帮助程序以调用视图获取路由错误

时间:2012-05-02 04:38:42

标签: ruby-on-rails rails-routing link-to-function

我有一个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"

我尝试过很多切换事物的组合,但是还没有任何工作。所以我想知道是否有人可以帮助我。

谢谢,

1 个答案:

答案 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