Rails Empty Controller提供正确的查看文件

时间:2017-12-22 01:32:23

标签: ruby-on-rails ruby

我需要帮助了解在初学者Rails应用程序中创建控制器和路由所采取的步骤。在过去的6个月里,我一直使用Javascript编写代码,现在我正在尝试使用Ruby on Rails。我将继续关注控制器和路由的外观和工作方式以及它们在Rails中的运行方式。

首先,

Rails generate controller welcome index

我在终端中运行了它并且它按预期运行: mydomain / welcome / index提供了欢迎页面。

我的问题是关于使这成为可能的路线和控制器。

在routes.rb中,我们有一行单独的代码:

get 'welcome/index'

我假设此文件正在接受 mydomain / welcome / index的客户端请求,然后将此请求发送到app文件夹中的welcome_controller.rb。如果这确实是正确的,为什么我们不能看到将请求传递给该文件中的控制器的逻辑或过程?

第二个问题:一旦我们打开welcome_controller.rb,我们就会看到这个

class WelcomeController < ApplicationController
    def index
    end
end

我没有看到任何指定应用程序查看index.html.erb文件或视图文件的内容。 (但是这个文件确实已经执行或编译了< - 不确定我的术语)

3 个答案:

答案 0 :(得分:4)

这是框架&#34;魔术&#34;。它在文档中涵盖了更多here; &action;运动名称==布局文件名&#39;是通过抽象消除复杂和无聊的东西来加快开发时间的方法之一。如果我必须处理所有代码来为每个新控制器渲染html,我将落后大约五年。

路径文件 - 实际上是你生成的大多数rails代码 - 可以被认为是用代码编写的更多配置文件,而不是一个完全自包含的路由程序。

这个控制器类继承自ApplicationController,而ApplicationController又继承自ActionController :: Base--它处理大部分的设置和渲染。由于复杂的继承和类结构,在学习ruby的这个阶段通过自己阅读可能太复杂了,但上面的文档有助于解释你需要在功能上知道什么。

但是,如果你想在Ruby中自己手动处理请求,这也是学习js到学习ruby和rails的一个很好的桥梁,看看像Sinatra更直接的东西,我们应该说&#39;节点状&#39;对于服务器。

答案 1 :(得分:1)

是;您在问题中学到和描述的大部分内容都可以称为Rails架构/框架(具有不同组件和基础架构的设计,如模型,视图,控制器,帮助器等),以及您作为ruby on rails(RoR)程序员将把它放在例如

之间
def index

end

是在请求到来时将执行的指令。这些是特定于用户案例的请求,例如我想要一个项目列表,我想删除项目等。代码将用ruby语言编写。我希望我把它作为评论(但评论有不同的目的),因为我相信这里有大师会给出更好的答案! 您可能在Javascript中熟悉的示例是您有DOM,选择器,事件,操作等,例如:

$(function(){  // call jQuery

    // begin coding (making selection and do action)

    $("button").click(function(){  // on event of clicking a button      
    $("h3").css("color", "red");  //do action
    });

    }); //end of code

}); // end of jQuery

答案 2 :(得分:1)

如果您想了解Rails路线的工作原理,请访问Rails Routing from the Outside In,之后,您可以阅读API并获取更多详情