如何更改每页的jumbotron文字?

时间:2015-03-25 23:48:37

标签: ruby-on-rails ruby twitter-bootstrap

在application.html.erb中我知道我需要使用它:

<div class="jumbotron">
  <p class="text-center">
    <%= @jumbotext %> <!-- this variable should be assigned in controller action-->
  </p>
</div>

但是我在控制器中放了什么?我把它放在应用程序控制器中还是把它放在其他每个控制器中?

一旦在控制器中需要进行任何操作,我在哪里可以添加文本,以便jumbotron根据点击的页面呈现不同的文本,就像boostrap在网站上的文字一样?

这个问题的灵感来自answer

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。 主要问题是,有多少版本的jumbotron内容?这是两个建议。

解决方案1:行动前

您可以在应用程序控制器中使用before action来指定一些默认值。

class ApplicationController < ActionController::Base
  before_action :set_jumbotext

  private

  def set_jumbotext
    @jumbotext = "Default value"
  end
end

然后在控制器操作中为需要的地方分配一个不同的值。

解决方案2:

的内容

您还可以使用content_for帮助

来避免使用实例变量并将视图中的HTML直接注入到布局中

application.html.erb

<div class="jumbotron">
  <p class="text-center">
    <%= yield :jumbotron %>
  </p>
</div>

create_user_view.html.erb

<h1> Normal view content </h1>

<% content_for :jumbotron do %>
  This will be embedded in jubotron.
<% end %>