【问题标题】:Why is it normal for render to be called in both the controller and in the view?为什么在控制器和视图中都调用渲染是正常的?
【发布时间】:2015-08-13 17:45:26
【问题描述】:

Rails 指南Layouts and Rendering in Rails 给出了在控制器和视图中都使用渲染的示例。

Rendering by default ... 部分提到默认调用渲染。 Using render 部分给出了在控制器中调用 render 的示例:

def update
  @book = Book.find(params[:id])
  if @book.update(book_params)
    redirect_to(@book)
  else
    render "edit"
  end
end

Using Partials 部分给出了在视图中使用渲染的示例,例如使用局部渲染。

<%= render "menu" %>

无论是在控制器中使用渲染的情况,还是在视图中使用渲染的情况,都让我觉得不合逻辑。但令我困惑的是,我认为 Rails 的主要概念之一是模型视图控制器分离,这意味着将模型、视图和控制器的职责分开。

为什么在控制器和视图中都调用render是正常的?

【问题讨论】:

    标签: ruby-on-rails model-view-controller rendering


    【解决方案1】:

    我想说,如果使用得当,当在视图中使用渲染时,它应该主要作为一种组织/结构工具,以使视图的代码更易于理解和可读。

    在控制器中使用时,它定义了视图的入口点,并且是控制器中的操作与视图之间的主要关联。

    区别很微妙。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2018-06-26
      相关资源
      最近更新 更多