Rails调用控制器用户定义的方法

时间:2015-12-23 09:19:02

标签: ruby-on-rails view controller

我正在使用rails我有一个控制器名称书,并且有一个用户定义的方法。我需要调用此方法,以便我可以在控制台上看到输出。我不想在帮助器中调用此方法。

def approve
    @user=current_user.users.find params[:id]
    puts '#{@usery}'     
  end 


我也有一个链接

<%= link_to 'approve',users_path,data: { :confirm => 'Are you sure to delete the folder and all of its contents?'} %>


。当我点击此链接时,我想在上面调用上面的方法。

2 个答案:

答案 0 :(得分:0)

您只需要define a route并通过以下方式调用它:

#config/routes.rb
resources :users do
    get :approve, on: :member
end

<%= link_to "Approve", users_approve_path(@user) %>

答案 1 :(得分:0)

正如@Rich建议的那样,你可以通过member来实现它。请注意,当您在成员资格块

中创建member路线时
resources :users do
  member do
    get 'approve'
  end
end

然后你会得到params[:id]。像

def approve
  @user = User.find params[:id]
  puts '#{@user}'     
end

当使用member创建:on路线时,您将获得params[:user_id]。像

def approve
  @user = User.find params[:user_id]
  puts '#{@user}'     
end

两种情况下的路径都相同
<%= link_to "Approve", users_approve_path(@user) %>

来源Rails - Adding More RESTful Actions

快乐的编码!!!