如何在 RoR 中编写此方法?
if item is nil or item.user!='my_value' redirect_to "/"
想这样称呼它:
@item = Item.find(params[:id])
method_described_earlier(@item)
或者其他方式。想看看 rails pro 是如何做到的。
如何在 RoR 中编写此方法?
if item is nil or item.user!='my_value' redirect_to "/"
想这样称呼它:
@item = Item.find(params[:id])
method_described_earlier(@item)
或者其他方式。想看看 rails pro 是如何做到的。
您应该使用before_filter,它将在您指定的任何一组控制器操作之前运行。例如:
class SomeController < ApplicationController
before_filter :require_special_item, only: [:myaction, :other_action, ...]
def myaction
# do something with @item
end
private
def require_special_item
@item = Item.find(params[:id])
if @item is nil or @item.user!='my_value'
redirect_to "/"
end
end
end
该方法require_special_item
将始终在myaction
您指示的任何其他操作之前运行,如果找到的项目不符合您的要求,则重定向用户。