[英]Rails call a controller user-defined method
I am working with rails I have a controller name books and has a user defined method in it .I need to call this method so that i can see the output on console.And I dont want to call this method in helpers. 我正在使用Rails,我有一个控制器名称簿,并且其中有一个用户定义的方法。我需要调用此方法以便可以在控制台上看到输出。而且我不想在助手中调用此方法。
def approve
@user=current_user.users.find params[:id]
puts '#{@usery}'
end
Also I Have a link 我也有一个链接
<%= link_to 'approve',users_path,data: { :confirm => 'Are you sure to delete the folder and all of its contents?'} %>
.When i click on this link I want to call the above method on it . 当我单击此链接时,我想在上面调用上述方法。
You'll just need to define a route and call it through that: 您只需要定义一条路线并通过该路线进行调用:
#config/routes.rb
resources :users do
get :approve, on: :member
end
<%= link_to "Approve", users_approve_path(@user) %>
As @Rich suggested that, you can achieve it by member
. 正如@Rich所建议的那样,您可以由
member
实现。 Please note that when you'll create a member
route in member block 请注意,在会员区中创建
member
路线时
resources :users do
member do
get 'approve'
end
end
then you'll get the params[:id]
. 然后您将获得
params[:id]
。 Like 喜欢
def approve
@user = User.find params[:id]
puts '#{@user}'
end
and when create a member
route using :on
then you'll get params[:user_id]
. 当使用
:on
创建member
路由时:on
您将获得params[:user_id]
。 Like 喜欢
def approve
@user = User.find params[:user_id]
puts '#{@user}'
end
Path will be same in both cases that is 两种情况下的路径都相同,即
<%= link_to "Approve", users_approve_path(@user) %>
Source Rails - Adding More RESTful Actions Source Rails-添加更多的RESTful动作
Happy coding !!! 编码愉快!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.