html - Rails - 在 application.html.erb 中修改 html 类的正确方法是什么?

标签 html ruby-on-rails ruby

我在现有的 Rails 应用程序上工作。 对于某些页面,我需要在“内容”div 和其他 div 中添加一个类 驻留在 application.html.erb 文件中。 假设我有 div class="content",对于某些页面我需要 div class="content widgetgrid"。我想知道执行此操作的“正确方法”是什么,或者更重要的是 Rails-y 方法来执行此操作?

我考虑过定义一个实例变量并将其传递给 application.html.erb 文件。嗯:

  1. 它没有用。我不知道如何让 application.html.erb 文件可以访问 Controller 的实例变量。
  2. 我不确定这是否是正确的方法,或者是 Rails 的方法。

如有任何建议,我们将不胜感激。 :)

最佳答案

如果它只是一个简单的东西,例如一个不同的类,您可以使用 content_for,而不是制作一个全新的布局,如 here 所述.在你看来你会这样做

<% content_for :my_additional_classes, 'some classes you want' %>

然后在你的布局application.html.erb中适当的地方读出来。例如

# Layout stuff ...

<div class="always_used_class <%= yield :my_additional_classes %>">
  # content...
</div>

# More layout stuff ...

编辑:假设您想在 View 中设置此内容(这是有道理的,因为 View 相关的东西应该在 View 中定义,这就是 railsy 方式)。如果您真的想在 Controller 中执行此操作,您还可以使用以下内容来设置内容

view_context.content_for(:my_additional_classes, 'some_additional_class')

关于html - Rails - 在 application.html.erb 中修改 html 类的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34362186/

相关文章:

ruby-on-rails - 我可以重命名 routes.rb 中的资源吗?

jquery - 在应用程序的 .erb View 中交替使用 rails image_uploader.rb 生成 <div class ="one/other">?

javascript - 修复嵌入音频以在 iOS 上运行

PHP mysql 而不是根据数据库键分配变量

javascript - 无法获取 Firefox 的 html 元素的高度和宽度

ruby-on-rails - 如何返回人类可读的时间范围?

ruby-on-rails - 乘客使用错误的 ruby​​ 版本

php - 如何防止在重新加载时向数据库发送数据?

ruby-on-rails - 在 Rails 中向 link_to 添加换行符

mysql - 用于连接 has_and_belongs_to_many 关系的 ActiveRecord 查询