Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我可以在RubyonRails中为其他控制器使用api控制器吗_Ruby On Rails_Ruby_Api_Controller - Fatal编程技术网

Ruby on rails 我可以在RubyonRails中为其他控制器使用api控制器吗

Ruby on rails 我可以在RubyonRails中为其他控制器使用api控制器吗,ruby-on-rails,ruby,api,controller,Ruby On Rails,Ruby,Api,Controller,我想创建一个RubyonRails应用程序,它提供了一个api和一个门户。考虑到我们可以创建用户并通过API和门户来描述todo-条目。为了让它干燥,我想在其他控制器中使用api方法。因此,当用户通过门户创建todo条目时,应该执行相应api控制器的业务逻辑,而不是将代码从该控制器复制到todo控制器。另外,我确实需要一个单独的api控制器,因为其他客户端(如移动电话)应该调用某个端点(如%BASE_URI%/api/rest/v1/…),而不是不同的控制器。这可能吗?是否有最佳实践 致意 da

我想创建一个RubyonRails应用程序,它提供了一个api和一个门户。考虑到我们可以创建用户并通过API和门户来描述todo-条目。为了让它干燥,我想在其他控制器中使用api方法。因此,当用户通过门户创建todo条目时,应该执行相应api控制器的业务逻辑,而不是将代码从该控制器复制到todo控制器。另外,我确实需要一个单独的api控制器,因为其他客户端(如移动电话)应该调用某个端点(如%BASE_URI%/api/rest/v1/…),而不是不同的控制器。这可能吗?是否有最佳实践

致意
dasheck

您可以将常用代码转移到帮助程序中

module SomeHelper
    def your_method
        do_something
    end
end

class SomeController < ApplicationController
    include SomeHelper

    def method
       your_method 
    end
end

class AnotherController
    include SomeHelper

    def method
       your_method 
    end
end
modulesomehelper
定义你的方法
做点什么
结束
结束
类SomeController
您还可以在任何视图中使用帮助器方法,而不包括


请参阅文档和

,这意味着我只需向实际控制器添加特定于控制器的代码(分别用于api呈现json和todo控制器呈现视图)。听起来对我来说很合理。但这不会产生重复的线框代码吗。业务逻辑将处于中心位置tho,这仍然是一件好事。我想的是使用路由器。因此,当调用todo控制器时,它会被路由到api,然后返回到todo控制器,在那里它可以从api控制器继续响应。这有意义吗?如果你想使用精确的控制器方法,你可以重定向到Nessery控制器方法,因为在这里,谢谢,这帮了我很多。我将更深入地研究它。