Ruby on Rails调用我创建的动作

时间:2011-01-18 17:03:25

标签: ruby-on-rails-3 routing action

我在用户视图Index页面中有一个button_to标记,如下所示:

<%= button_to "Make Admin", :action => :make_admin :user => user %>

在用户控制器中,我有:

def make_admin
@user = User.find(params[:id])
@changed_user.role = 3
@changed_user.save
end

我收到有关错误路由的消息,但由于我对更改视图不感兴趣,直到操作后我不知道如何路由此操作。我哪里出错?

1 个答案:

答案 0 :(得分:1)

您需要在路线中命名路径:

# routes.rb
get 'your_path' => 'user#make_admin, :as => 'make_admin' # can use post too

# controller
def make_admin
  # logic to make an admin
  redirect_to(some_other_path, :notice => 'User was made an admin')
end

然后,在您看来,

button_to 'make admin', make_admin_path

您可能还想远程拨打电话,但是您需要在这个意义上发布包含更多信息的其他问题