没有Javascript执行Ruby的按钮

时间:2012-09-06 02:39:14

标签: ruby-on-rails button

路线

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 %>

我无法让这个工作。我需要从一个按钮执行此代码。

1 个答案:

答案 0 :(得分: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。)