Rails使用两个动作的定义?

时间:2014-03-14 18:18:49

标签: ruby-on-rails

有没有办法对2个动作使用相同的定义?

这样的东西?

def index2, index5
  @workgroups = Workgroup.all
  if params[:workgroup]
    @workgroup = Workgroup.find(params[:workgroup])
  end

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @workgroups }
  end
end

2 个答案:

答案 0 :(得分:2)

您可以将2个网址路由到同一个动作 在config/routes.rb执行:

get 'controller/index5', to: 'controller#oneindex'
get 'controller/index2', to: 'controller#oneindex'

答案 1 :(得分:0)

三种解决方案

1制作常用方法

我更喜欢这种方法,因为如果你想改变一些东西......

def index5
  common_method_name
end

def index2
  common_method_name
end

private
def common_method_name
  # common code
end

2别名

def index5
  # your code
end

alias_method :index2, :index5

3条路线

您可以将2个网址路由到config/routes.rb中的相同操作。(来源Murifox的答案

get 'controller/index5', to: 'controller#oneindex'
get 'controller/index2', to: 'controller#oneindex