0

路线

resources :cars do
  collection do
    get :f01a
  end
end 

控制器

class CarsController < ApplicationController
  def f01a
    @user = User.find(params[:id])
    @count = Count.find_by_user_id(@user)
    @count.increment!(:f02)
    redirect_to @user
  end
end

看法

<%= button_to "add f01", f01a_cars_path %>

我不能让它工作。我需要从一个按钮执行此代码。

4

1 回答 1

2

button_to发送 POST 请求,但您的路由设置为仅接受 GET 请求。您应该将其更改为:

resources :cars do
  collection do
    post :f01a
  end
end

由于您正在使用params[:id]您的操作,但根本没有发送它,您需要将它传递到您的button_to

<%= button_to "add f01", f01a_cars_path(:id => something)

(替换something为您要传递的任何 ID。)

于 2012-09-06T03:00:02.960 回答