在application.html.erb中我知道我需要使用它:
<div class="jumbotron">
<p class="text-center">
<%= @jumbotext %> <!-- this variable should be assigned in controller action-->
</p>
</div>
但是我在控制器中放了什么?我把它放在应用程序控制器中还是把它放在其他每个控制器中?
一旦在控制器中需要进行任何操作,我在哪里可以添加文本,以便jumbotron根据点击的页面呈现不同的文本,就像boostrap在网站上的文字一样?
这个问题的灵感来自answer。
答案 0 :(得分:0)
有很多方法可以解决这个问题。 主要问题是,有多少版本的jumbotron内容?这是两个建议。
您可以在应用程序控制器中使用before action来指定一些默认值。
class ApplicationController < ActionController::Base
before_action :set_jumbotext
private
def set_jumbotext
@jumbotext = "Default value"
end
end
然后在控制器操作中为需要的地方分配一个不同的值。
您还可以使用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 %>