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



我正在使用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?'} %>


.当我点击这个链接时,我想调用上面的方法。

您只需要定义一个路由并通过它调用它:

#config/routes.rb
resources :users do
    get :approve, on: :member
end
<%= link_to "Approve", users_approve_path(@user) %>

正如@Rich所建议的,您可以通过member来实现它。请注意,当您将在成员块中创建member路由时

resources :users do
  member do
    get 'approve'
  end
end

那么你就会得到params[:id]。像

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

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

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

路径在两种情况下都是相同的

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

Source Rails-添加更多RESTful操作

编码快乐!!!

最新更新