代码之家  ›  专栏  ›  技术社区  ›  Michael Sync

轨道:控制器和路由

  •  0
  • Michael Sync  · 技术社区  · 16 年前

    我对Rails很陌生。

    问题1。控制器和视图之间的路由是什么?

    假设我有一个控制器,叫做 存储控制器 . 我在该控制器中没有方法,但我有一个名为“列表”的视图

    问题2。如果我在控制器中添加如下列表方法会怎么样?如果我调用localhost:3000/store/list,路由是什么?从控制器中选择list方法,然后选择view?还是先查看控制器中的列表方法?或者永远不会调用控制器中的列表方法?

    def list
      logger.Write 'list in Controller'
    end
    

    第三季度。如何从视图中调用controller的方法而不使用helper或该方法没有任何模板文件?假设我在控制器中有一个名为DoSomething的方法。

    def DoSomething
      logger.Write 'd'
    end
    

    <%= link_to "Do It", :action => "DoSomething" %>
    

    根据我的测试,它不起作用。

    编辑: 实际上,view可以通过Http Post调用控制器。假设我们在屏幕上看到的是视图。若你们点击按钮,它将是http post,并将调用控制器。这就是我从视图调用controller方法的意思。。

    第四季度。如何在自定义日志文件中写入日志?如果我使用logger.Write,那么所有日志都将写入development.log。如何获取自定义日志文件?

    问题5。有没有办法在Ruby和Rails中创建类似于调度器的程序?如果我想创建调度器或后端作业之类的东西,我应该使用Ruby或Rails吗?比如每秒钟ping一个提要,如果有新的更改,则获取数据并将其插入数据库。

    1 回复  |  直到 9 年前
        1
  •  2
  •   Toby Hede    16 年前

    这可能需要几个问题:P。。。但它也是维基的良好基础。

    问题1。 Rails使用约定——如果您有一个名为“list”的视图,Rails就足够聪明,可以将其视为存在一个list方法。当然,由于没有方法,您将没有任何逻辑,但视图仍将被渲染。

    问题2。 如果添加列表方法,Rails现在将调用它。同样,Rails非常聪明,可以假设列表操作映射到列表视图。如果要调用其他视图,可以使用控制器的内置“渲染”方法。

    第三季度。 通常,您不应该从视图中调用控制器方法。它根本不是MVC模型的一部分。您可以将数据传递到视图中,也可以使用帮助器实现所需的任何特定于视图的方法。如果您有广泛的自定义逻辑,您可以开始将代码推送到模型中,甚至构建位于/lib目录中的模块和类。

    第四季度。

    问题5。 这绝对是一个完全不同的问题。建议开始一个新的,但做一个搜索,因为我知道这已经得到了相当广泛的解决,所以之前。有许多机制与Rails一起工作以进行调度。