[ruby on rails]我如何从另一个控制器功能的控制器调用一个函数?

时间:2018-01-18 08:19:04

标签: ruby-on-rails ruby mongodb controller

我最近在RoR框架中编写了一个项目。但我遇到了问题。 在我的控制器中,我有一个名为Api控制器的控制器,我用它来制作Api调用,这些调用是在Rails之外的api,它们工作正常。 但我在其他控制器中创建了一些其他功能,我想像Api一样使用它们但是idk怎么做呢

进行API调用的Api函数:

def show_api_data
@apis = Api.load_by_api_id(load_api_data_params[:api_id], load_api_data_params[:callparams], current_user)
return render json: @apis, status: @apis[:errors][0][:status] if @apis[:errors].present?
render json: @apis, fields: { apis: %i[api_data total_count] }
end

def post_api_data
@apis = Api.load_by_api_id(load_api_data_params[:api_id], load_api_data_params[:callparams], current_user)
return render json: @apis, status: @apis[:errors][0][:status] if @apis[:errors].present?
render json: @apis, fields: { apis: %i[api_data total_count] }
end

这两个函数来自另一个函数,用于为用户提供角色:

def add_role_to_user
role_params[:user_id].each do |user|
  user = User.find(user)
  role_params[:role_ids].each do |role|
    @roles = Role.find(role)
    if @roles.resource.present?
      new_role = user.add_role(@roles.name, @roles.resource)
      new_role.save!
    end
  end
end
render json: @roles
end

def remove_role_from_user
role_params[:user_id].each do |user|
  user = User.find(user)
  role_params[:role_ids].each do |role|
    @roles = Role.find(role)
    user.remove_role(@roles.name, @roles.resource) if @roles.resource.present?
  end
end
render json: @roles
end

所以我想要做的就是将这个角色函数用作API,并使用MongoDB将其发送到api调用函数。

0 个答案:

没有答案