Rails 调用控制器用户定义的方法
Posted
技术标签:
【中文标题】Rails 调用控制器用户定义的方法【英文标题】:Rails call a controller user-defined method 【发布时间】:2015-12-23 09:19:01 【问题描述】:我正在使用 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?' %>
。当我单击此链接时,我想在其上调用上述方法。
【问题讨论】:
【参考方案1】:您只需要define a route 并通过它调用它:
#config/routes.rb
resources :users do
get :approve, on: :member
end
<%= link_to "Approve", users_approve_path(@user) %>
【讨论】:
【参考方案2】:正如@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) %>
来源Rails - Adding More RESTful Actions
编码愉快!!!
【讨论】:
以上是关于Rails 调用控制器用户定义的方法的主要内容,如果未能解决你的问题,请参考以下文章