1

我的 show.html.erb 文件中有一个 button_to 标记。

  <%= link_to 'Click HERE to open file', @user.image.url  %><br/><br/><br/>
<%= label_tag(:q, "Parse CSV File:") %><br/>
<%= button_to 'Parse CSV', {:controller => "users_controller", :action => "process" } %>
  <% end %>

然后我将它添加到我的 users_controller.rb 文件中

# GET /users/1/process
def process
 puts 'To be Implemented'
end

我在路由文件中遇到错误

No route matches [POST] "/assets"

这是我的路由文件的外观:

resources :users

resources :listings

我应该改变什么。我有点困惑,非常感谢一些帮助。

4

2 回答 2

0

1)在视图中,使用控制器名称,如 'users',而不是 'users_controller' 。

<%= button_to 'Parse CSV', {:controller => "users", :action => "process" } %>

2) 默认情况下,rails 定义了很少的路线,但对于其他路线,您需要自己定义。声明如下路线:

  resources :users do
    :member => {
     :process => :get
    }
  end

希望有所帮助。

于 2012-04-30T06:19:37.130 回答
0

请更正您的路线并像这样定义

<%= button_to 'Parse CSV', {:controller => "users", :action => "process" } %>

然后在路由文件中

    resources :users do
      collection do
         get: process
     end
    end

它肯定会工作

于 2012-04-30T06:57:20.297 回答