{"id":39674,"date":"2025-07-08T06:26:50","date_gmt":"2025-07-08T06:26:50","guid":{"rendered":"https:\/\/www.railscarma.com\/?p=39674"},"modified":"2025-07-08T08:58:01","modified_gmt":"2025-07-08T08:58:01","slug":"understanding-ruby-on-rails-controllers-a-developers-guide","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/","title":{"rendered":"Comprendre les contr\u00f4leurs Ruby on Rails : Guide du d\u00e9veloppeur"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"39674\" class=\"elementor elementor-39674\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8219744 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8219744\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-26d29d2\" data-id=\"26d29d2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-68950dd elementor-widget elementor-widget-text-editor\" data-id=\"68950dd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ruby on Rails, often simply called Rails, is a powerful web development framework built on the Ruby programming language. Known for its &#8220;Convention over Configuration&#8221; and &#8220;Don&#8217;t Repeat Yourself&#8221; (DRY) principles, Rails simplifies the process of building robust web applications. At the heart of any Rails application lies the <strong>controller<\/strong>, a critical component of the Model-View-Controller (MVC) architecture. This guide dives deep into understanding Rails controllers, their role, structure, best practices, and advanced use cases, equipping developers with the knowledge to leverage them effectively.<\/p><h3><strong>What is a Controller in Ruby on Rails?<\/strong><\/h3><p>In the MVC paradigm, the controller acts as an intermediary between the <strong>Model<\/strong> (data and business logic) and the <strong>Voir<\/strong> (user interface). Controllers handle incoming HTTP requests, process them using application logic, interact with models to fetch or manipulate data, and render views to display the results to the user.<\/p><p>In Rails, controllers are Ruby classes that inherit from <code>Contr\u00f4leur d&#039;application<\/code>, which itself inherits from <code>ActionController::Base<\/code>. Each controller is responsible for handling specific routes and actions in the application. For example, a <code>Contr\u00f4leur d&#039;utilisateurs<\/code> might handle requests related to user management, such as creating, updating, or deleting user records.<\/p><h3><strong>The Role of Controllers in Rails<\/strong><\/h3><p>Controllers serve several key purposes in a Rails application:<\/p><ul><li><strong>Request Handling:<\/strong> Controllers receive HTTP requests (e.g., GET, POST, PUT, DELETE) from the user\u2019s browser or API client.<\/li><li><strong>Data Processing:<\/strong> They interact with models to query or modify data in the database.<\/li><li><strong>Rendering Responses:<\/strong> Controllers decide how to respond to requests, whether by rendering a view (HTML, JSON, XML) or redirecting to another route.<\/li><li><strong>Session Management:<\/strong> They manage user sessions, cookies, and authentication state.<\/li><li><strong>Business Logic Coordination:<\/strong> Controllers orchestrate the flow of data between models and views, ensuring the application behaves as expected.<\/li><\/ul><p>In essence, controllers act as the &#8220;traffic cops&#8221; of a Rails application, directing requests to the appropriate logic and responses.<\/p><h3><strong>Anatomy of a Rails Controller<\/strong><\/h3><p>A typical Rails controller is a Ruby class located in the <code>app\/controllers<\/code> directory. Let\u2019s break down a simple example:<\/p><pre>ruby\nclass ArticlesController &lt; ApplicationController\n    def index\n        @articles = Article.all\n    end\n\n    def show\n        @article = Article.find(params[:id])\n    end\n\n    def new\n        @article = Article.new\n    end\n\n    def create\n        @article = Article.new(article_params)\n        if @article.save\n            redirect_to @article, notice: \"Article was successfully created.\"\n        else\n            render :new\n        end\n    end\n\n    private\n\n    def article_params\n        params.require(:article).permit(:title, :content)\n    end\nend<\/pre><h3><strong>Key Components of a Controller<\/strong><\/h3><ul><li><strong>Class Definition:<\/strong> The controller inherits from <code>Contr\u00f4leur d&#039;application<\/code>, which provides built-in functionality from <code>ActionController::Base<\/code>.<\/li><li><strong>Actions:<\/strong> Public methods (e.g., <code>index, show, new, create<\/code>) correspond to specific routes and handle specific HTTP requests.<\/li><li><strong>Instance Variables:<\/strong> Variables prefixed with @ (e.g., <code>@articles, @article<\/code>) are used to pass data from the controller to the view.<\/li><li><strong>Private Methods:<\/strong> Methods like <code>article_params<\/code> are used for tasks like parameter filtering to ensure security (e.g., preventing mass assignment vulnerabilities).<\/li><li><strong>Rendering and Redirecting:<\/strong> Actions typically end by rendering a view (e.g., <code>rendu\u00a0:nouveau<\/code>) or redirecting to another route (e.g., <code>redirect_to @article<\/code>).<\/li><\/ul><h3><strong>Mapping Controllers to Routes<\/strong><\/h3><p>Controllers are tied to the application\u2019s routing system, defined in <code>config\/routes.rb<\/code>. Par exemple :<\/p><pre>ruby\nRails.application.routes.draw do\n    resources :articles\nend<\/pre><p>This single line generates seven standard RESTful routes for the ArticlesController:<\/p><p>These routes map HTTP requests to specific controller actions, making it easy to build RESTful applications.<\/p><h3><strong>Creating a Controller<\/strong><\/h3><p>To create a controller, you can use the Rails generator:<\/p><pre>frapper<\/pre><p>rails generate controller Articles index show new create<\/p><p>This command generates:<\/p><ul><li>An <code>ArticlesController<\/code> dans <code>app\/controllers\/articles_controller.rb.<\/code><\/li><li>Corresponding view templates in <code>app\/views\/articles\/<\/code>.<\/li><li>Routes in <code>config\/routes.rb<\/code> (if specified).<\/li><li>Helper and test files.<\/li><\/ul><p>You can also create controllers manually by defining a class in <code>app\/controllers<\/code> and updating the routes file.<\/p><h3><strong>Understanding Controller Actions<\/strong><\/h3><p>Each action in a controller corresponds to a specific task. Let\u2019s explore common actions and their roles:<\/p><pre>indice<\/pre><p>Le <code>indice<\/code> action typically retrieves a collection of resources. For example:<\/p><pre>ruby\ndef index\n@articles = Article.all\nend<\/pre><p>This action fetches all articles from the database and makes them available to the <code>index.html.erb<\/code> view.<\/p><pre>show<\/pre><p>Le <code>show<\/code> action retrieves a single resource by its ID:<\/p><pre>ruby\ndef show\n    @article = Article.find(params[:id])\nend<\/pre><p>Le <code>param\u00e8tres<\/code> hash contains URL parameters, such as the <code>:id<\/code> from the route <code>\/articles\/:id<\/code>.<\/p><pre>nouveau<\/pre><p>Le <code>nouveau<\/code> action initializes a new resource instance for a form:<\/p><pre>ruby\ndef new\n    @article = Article.new\nend<\/pre><p>This prepares an empty article object for the creation form.<\/p><pre>cr\u00e9er<\/pre><p>Le <code>cr\u00e9er<\/code> action handles form submissions to create a new resource:<\/p><pre>ruby\ndef create\n@article = Article.new(article_params)\nif @article.save\nredirect_to @article, notice: \"Article was successfully created.\"\nelse\nrender :new\nend\nend<\/pre><p>If the save is successful, the user is redirected to the new article\u2019s <code>show<\/code> page. If it fails (e.g., due to validation errors), the <code>nouveau<\/code> form is re-rendered with error messages.<\/p><h3><strong>Param\u00e8tres forts<\/strong><\/h3><p>To prevent mass assignment vulnerabilities, Rails uses <strong>strong parameters<\/strong> to filter incoming data. The <code>article_params<\/code> method ensures only permitted attributes (e.g., <code>:title, :content<\/code>) are used:<\/p><pre>ruby\nprivate\n\ndef article_params\n    params.require(:article).permit(:title, :content)\nend<\/pre><p>This is a security best practice to avoid allowing malicious users to modify sensitive attributes.<\/p><h3><strong>Rendering and Redirecting<\/strong><\/h3><p>Controllers determine how to respond to a request. Common response types include:<\/p><ul><li><strong>Rendering a View:<\/strong> <code>rendu\u00a0:nouveau<\/code> renders the <code>new.html.erb<\/code> template.<\/li><li><strong>Redirecting:<\/strong> <code>redirect_to @article<\/code> sends the user to the article\u2019s <code>show<\/code> page.<\/li><li><strong>JSON Responses:<\/strong> For APIs, controllers can render JSON:<\/li><\/ul><pre>ruby\ndef show\n@article = Article.find(params[:id])\nrender json: @article\nend<\/pre><ul><li><strong>Custom Status Codes:<\/strong> You can specify HTTP status codes, e.g., <code>render json: { error: \"Not found\" }, status: :not_found<\/code>.<\/li><\/ul><h3><strong>Filters and Callbacks<\/strong><\/h3><p>Rails controllers support <strong>callbacks<\/strong> (also called filters) to run code before, after, or around actions. Common callbacks include:<\/p><ul><li><code>before_action<\/code>: Runs before specified actions.<\/li><li>after_action: Runs after actions.<\/li><li><code>around_action<\/code>: Wraps an action.<\/li><\/ul><p>For example, to ensure a user is logged in before accessing certain actions:<\/p><pre>ruby\nclass ArticlesController &lt; ApplicationController\n    before_action :require_login, only: [:new, :create, :edit, :update]\n\n    private\n\n    def require_login\n        redirect_to login_path unless logged_in?\n    end\nend<\/pre><p>This ensures only authenticated users can create or edit articles.<\/p><h3><strong>Organizing Controllers<\/strong><\/h3><p>As applications grow, controllers can become bloated. Here are strategies to keep them manageable:<\/p><h5><strong>1. Skinny Controllers, Fat Models<\/strong><\/h5><p>Follow the &#8220;skinny controller, fat model&#8221; principle by moving business logic into models. For example, instead of calculating a user\u2019s total orders in the controller:<\/p><pre>ruby\n# Bad: Logic in controller\ndef show\n    @user = User.find(params[:id])\n    @total_orders = @user.orders.sum(:amount)\nend<\/pre><p>Move the logic to the model:<\/p><pre>ruby\n# app\/models\/user.rb\nclass User &lt; ApplicationRecord\n    def total_orders\n        orders.sum(:amount)\n    end\nend\n\n# app\/controllers\/users_controller.rb\ndef show\n    @user = User.find(params[:id])\nend<\/pre><p>Then, in the view, use @user.total_orders.<\/p><h5><strong>2. Concerns<\/strong><\/h5><p>For reusable controller logic, use <strong>concerns<\/strong>. Create a module in <code>app\/controllers\/concerns:<\/code><\/p><pre>ruby\n# app\/controllers\/concerns\/authenticable.rb\nmodule Authenticable\n    extend ActiveSupport::Concern\n\n    included do\n        before_action :require_login\n    end\n\n    private\n\n    def require_login\n        redirect_to login_path unless logged_in?\n    end\nend<\/pre><p>Include it in controllers:<\/p><pre>ruby\nclass ArticlesController &lt; ApplicationController\n    include Authenticable\nend<\/pre><h5><strong>3. Service Objects<\/strong><\/h5><p>For complex logic, extract it into service objects:<\/p><pre>ruby\n# app\/services\/article_publishing_service.rb\nclass ArticlePublishingService\n    def initialize(article, user)\n        @article = article\n        @user = user\n    end\n\n    def publish\n        return false unless @user.can_publish?\n        @article.update(published: true)\n    end\nend<\/pre><p>Use it in the controller:<\/p><pre>ruby\ndef publish\n    @article = Article.find(params[:id])\n    if ArticlePublishingService.new(@article, current_user).publish\n        redirect_to @article, notice: \"Article published!\"\n    else\n        redirect_to @article, alert: \"Could not publish article.\"\n    end\nend<\/pre><h3><strong>Advanced Controller Features<\/strong><\/h3><h5><strong>1. Namespaces and Scoped Controllers<\/strong><\/h5><p>For admin functionality, use namespaced controllers:<\/p><pre>ruby\n# config\/routes.rb\nnamespace :admin do\n    resources :articles\nend\n\n# app\/controllers\/admin\/articles_controller.rb\nclass Admin::ArticlesController &lt; ApplicationController\n    def index\n        @articles = Article.where(status: :pending)\n    end\nend<\/pre><p>This maps to routes like <code>\/admin\/articles<\/code> and keeps admin logic separate.<\/p><h5><strong>2. API Controllers<\/strong><\/h5><p>For building APIs, inherit from <code>ActionController::API<\/code>:<\/p><pre>ruby\nclass Api::V1::ArticlesController &lt; ActionController::API\n    def index\n        render json: Article.all\n    end\nend<\/pre><p>This provides a lightweight controller optimized for JSON responses, excluding view rendering.<\/p><h5><strong>3. Action Cable Integration<\/strong><\/h5><p>Controllers can trigger real-time updates via Action Cable. For example, broadcasting a new article:<\/p><pre>ruby\ndef create\n    @article = Article.new(article_params)\n    if @article.save\n        ActionCable.server.broadcast(\"articles_channel\", { article: @article })\n        redirect_to @article\n    else\n        render :new\n    end\nend<\/pre><h5><strong>4. Error Handling<\/strong><\/h5><p>Handle errors gracefully with <code>rescue_from<\/code>:<\/p><pre>ruby\nclass ArticlesController &lt; ApplicationController\n    rescue_from ActiveRecord::RecordNotFound, with: :record_not_found\n\n    private\n\n    def record_not_found\n        render plain: \"Record not found\", status: :not_found\n    end\nend<\/pre><h3><strong>Best Practices for Rails Controllers<\/strong><\/h3><ul><li><strong>Keep Controllers Thin:<\/strong> Move complex logic to models or service objects.<\/li><li><strong>Use Strong Parameters:<\/strong> Always filter parameters to prevent security issues.<\/li><li><strong>Follow REST Conventions:<\/strong> Stick to standard RESTful routes and actions.<\/li><li><strong>Handle Errors Gracefully:<\/strong> Use callbacks or <code>rescue_from<\/code> for consistent error handling.<\/li><li><strong>Test Controllers:<\/strong> Write RSpec or Minitest tests to ensure actions behave as expected.<\/li><li><strong>Use Descriptive Naming:<\/strong> Name actions and methods clearly to reflect their purpose.<\/li><li><strong>Leverage Callbacks:<\/strong> Utilisation <code>before_action<\/code> and other callbacks to reduce code duplication.<\/li><\/ul><h3><strong>Testing Rails Controllers<\/strong><\/h3><p>Testing is crucial to ensure controllers work correctly. Here\u2019s an example using RSpec:<\/p><pre>ruby\n# spec\/controllers\/articles_controller_spec.rb\nrequire 'rails_helper'\n\nRSpec.describe ArticlesController, type: :controller do\n    describe \"GET #index\" do\n        it \"returns a successful response\" do\n            get :index\n            expect(response).to be_successful\n        end\n    end\n\n    describe \"POST #create\" do\n        context \"with valid parameters\" do\n            it \"creates a new article\" do\n                expect {\n                    post :create, params: { article: { title: \"Test\", content: \"Content\" } }\n                }.to change(Article, :count).by(1)\n            end\n        end\n    end\nend<\/pre><p>This tests the <code>indice<\/code> et <code>cr\u00e9er<\/code> actions, ensuring they respond correctly and perform the expected operations.<\/p><h2><strong>Conclusion<\/strong><\/h2><p>Rails controllers are the backbone of request handling in a <a href=\"https:\/\/www.railscarma.com\/fr\/developpement-dapplications-de-rails-personnalises\/\">Application Rails<\/a>, bridging the gap between user input and the application\u2019s data and views. By understanding their structure, leveraging RESTful conventions, and following best practices like keeping controllers thin and secure, developers can build maintainable and scalable applications. Advanced features like namespaces, API controllers, and Action Cable integration further enhance their power. With proper testing and organization, controllers become a robust tool for delivering delightful user experiences in Ruby on Rails.<\/p><p>Whether you\u2019re a beginner building your first Rails app or an experienced developer tackling complex applications, mastering controllers is essential to harnessing the full potential of Rails. Start experimenting with controllers in your next project, and you\u2019ll see how they bring your application\u2019s logic to life.<\/p><p>\u00c0 <a href=\"https:\/\/www.railscarma.com\/fr\/\">RailsCarma<\/a>, we specialize in architecting high-performance Rails applications with clean, modular controller logic. Whether you&#8217;re refactoring legacy code or building a robust app from scratch, our seasoned Ruby on Rails experts can help you implement best practices that stand the test of time. Ready to optimize your Rails codebase? <strong>Let\u2019s build smarter\u2014together.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Building Agentic AI Applications with Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/building-agentic-ai-applications-with-ruby-on-rails\/?related_post_from=41339\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/05\/Building-Agentic-AI-Applications-with-Ruby-on-Rails.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Agentic AI Applications with Ruby on Rails\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/05\/Building-Agentic-AI-Applications-with-Ruby-on-Rails.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/05\/Building-Agentic-AI-Applications-with-Ruby-on-Rails-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/05\/Building-Agentic-AI-Applications-with-Ruby-on-Rails-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/05\/Building-Agentic-AI-Applications-with-Ruby-on-Rails-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Building Agentic AI Applications with Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/building-agentic-ai-applications-with-ruby-on-rails\/?related_post_from=41339\">\r\n        Building Agentic AI Applications with Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Qu&#039;est-ce que Offliberty Ruby Gem et comment fonctionne-t-il ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/quest-ce-que-offliberty-ruby-gem-et-comment-fonctionne-t-il\/?related_post_from=41304\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Offliberty Ruby Gem\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Qu&#039;est-ce que Offliberty Ruby Gem et comment fonctionne-t-il ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/quest-ce-que-offliberty-ruby-gem-et-comment-fonctionne-t-il\/?related_post_from=41304\">\r\n        Qu'est-ce que Offliberty Ruby Gem et comment fonctionne-t-il ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"M\u00e9thode Rails link_to : Le guide complet avec des exemples\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/rails-link_to-method-the-complete-guide-with-examples\/?related_post_from=41296\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples.png\" class=\"attachment-full size-full wp-post-image\" alt=\"M\u00e9thode Rails link_to\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"M\u00e9thode Rails link_to : Le guide complet avec des exemples\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/rails-link_to-method-the-complete-guide-with-examples\/?related_post_from=41296\">\r\n        M\u00e9thode Rails link_to : Le guide complet avec des exemples  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Solutions d&#039;int\u00e9gration d&#039;API tierces en Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/?related_post_from=41264\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Third-Party-API-Integration-Solutions-in-Ruby-on-Rails.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Solutions d&#039;int\u00e9gration API en Ruby on Rails\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Third-Party-API-Integration-Solutions-in-Ruby-on-Rails.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Third-Party-API-Integration-Solutions-in-Ruby-on-Rails-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Third-Party-API-Integration-Solutions-in-Ruby-on-Rails-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Third-Party-API-Integration-Solutions-in-Ruby-on-Rails-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Solutions d&#039;int\u00e9gration d&#039;API tierces en Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/?related_post_from=41264\">\r\n        Solutions d'int\u00e9gration d'API tierces en Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Ruby on Rails, souvent appel\u00e9 simplement Rails, est un puissant cadre de d\u00e9veloppement web bas\u00e9 sur le langage de programmation Ruby. Connu pour ses principes \"Convention over Configuration\" et \"Don't Repeat Yourself\" (DRY), Rails simplifie le processus de cr\u00e9ation d'applications web robustes. Au c\u0153ur de toute application Rails se trouve le contr\u00f4leur, un composant critique de la ...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Solutions d'int\u00e9gration d'API tierces en Ruby on Rails<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":11,"featured_media":39695,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1224],"tags":[],"class_list":["post-39674","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Understanding Ruby on Rails Controllers: A Developer&#039;s Guide - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Learn how Rails controllers work, handle requests, &amp; structure logic efficiently in this beginner-friendly guide for Ruby on Rails developers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Ruby on Rails Controllers: A Developer&#039;s Guide - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Learn how Rails controllers work, handle requests, &amp; structure logic efficiently in this beginner-friendly guide for Ruby on Rails developers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-08T06:26:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-08T08:58:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ashish\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"ashish\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\"},\"author\":{\"name\":\"ashish\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/9699b14852b308edfeb03096b33c7a7a\"},\"headline\":\"Understanding Ruby on Rails Controllers: A Developer&#8217;s Guide\",\"datePublished\":\"2025-07-08T06:26:50+00:00\",\"dateModified\":\"2025-07-08T08:58:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\"},\"wordCount\":1252,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png\",\"articleSection\":[\"Blogs\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\",\"name\":\"Understanding Ruby on Rails Controllers: A Developer's Guide - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png\",\"datePublished\":\"2025-07-08T06:26:50+00:00\",\"dateModified\":\"2025-07-08T08:58:01+00:00\",\"description\":\"Learn how Rails controllers work, handle requests, & structure logic efficiently in this beginner-friendly guide for Ruby on Rails developers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png\",\"width\":800,\"height\":300,\"caption\":\"Understanding Ruby on Rails Controllers A Developer's Guide\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Ruby on Rails Controllers: A Developer&#8217;s Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/9699b14852b308edfeb03096b33c7a7a\",\"name\":\"ashish\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/204411c7d72714bc32d5ac6398e0596896318386bd537860fdd14ce905a79e07?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/204411c7d72714bc32d5ac6398e0596896318386bd537860fdd14ce905a79e07?s=96&d=mm&r=g\",\"caption\":\"ashish\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding Ruby on Rails Controllers: A Developer's Guide - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","description":"Learn how Rails controllers work, handle requests, & structure logic efficiently in this beginner-friendly guide for Ruby on Rails developers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/fr\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/","og_locale":"fr_FR","og_type":"article","og_title":"Understanding Ruby on Rails Controllers: A Developer's Guide - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Learn how Rails controllers work, handle requests, & structure logic efficiently in this beginner-friendly guide for Ruby on Rails developers.","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2025-07-08T06:26:50+00:00","article_modified_time":"2025-07-08T08:58:01+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png","type":"image\/png"}],"author":"ashish","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"ashish","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/"},"author":{"name":"ashish","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/9699b14852b308edfeb03096b33c7a7a"},"headline":"Understanding Ruby on Rails Controllers: A Developer&#8217;s Guide","datePublished":"2025-07-08T06:26:50+00:00","dateModified":"2025-07-08T08:58:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/"},"wordCount":1252,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png","articleSection":["Blogs"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/","url":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/","name":"Understanding Ruby on Rails Controllers: A Developer's Guide - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png","datePublished":"2025-07-08T06:26:50+00:00","dateModified":"2025-07-08T08:58:01+00:00","description":"Learn how Rails controllers work, handle requests, & structure logic efficiently in this beginner-friendly guide for Ruby on Rails developers.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2025\/07\/Understanding-Ruby-on-Rails-Controllers-A-Developer-Guide.png","width":800,"height":300,"caption":"Understanding Ruby on Rails Controllers A Developer's Guide"},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/understanding-ruby-on-rails-controllers-a-developers-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Understanding Ruby on Rails Controllers: A Developer&#8217;s Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/9699b14852b308edfeb03096b33c7a7a","name":"ashish","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/204411c7d72714bc32d5ac6398e0596896318386bd537860fdd14ce905a79e07?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/204411c7d72714bc32d5ac6398e0596896318386bd537860fdd14ce905a79e07?s=96&d=mm&r=g","caption":"ashish"}}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/39674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=39674"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/39674\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/39695"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=39674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=39674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=39674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}