【问题标题】:Rails: how to not render view by default?Rails:默认情况下如何不渲染视图?
【发布时间】:2015-11-15 02:53:08
【问题描述】:

我正在将 AngularJS 与 Rails 集成,并试图弄清楚是否应该使用 yield、ui-view 或两者兼而有之。目前我正在使用带有 angular-rails-templates 的 ui-view,但在 application.html.erb 中没有 <%= yield %> Rails 仍在请求默认视图(例如views/users/edit.html.erb)。

我在 Rails 的文档中看到,

规则是,如果您没有在控制器操作的末尾显式渲染某些内容,Rails 将自动在控制器的视图路径中查找 action_name.html.erb 模板并进行渲染。

那么,如何阻止 rails 请求基本为空的视图文件?或者我应该采用不同的结构?

【问题讨论】:

    标签: ruby-on-rails angularjs ruby-on-rails-4


    【解决方案1】:

    基本上你想做的是有 application.html.erb 布局,但没有模板,所以你的 Angular 可以完成所有工作。

    这不是最好的架构设计,可能会破坏一些最佳实践,但你能做的就是这样。创建 application.html.erb 的副本并将其命名为 something.html.erb,其中“某事”是您的操作。所以默认情况下它会请求这个模板。然后做:

    render :layout => false
    

    layout false
    

    基本上我们所做的是将布局代码移动到模板级别并禁用布局,因此我们只请求一个视图文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多