将实例变量从控制器传递到布局/ .footer?

时间:2015-03-04 20:25:14

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

我处于两难境地,我是新手,我想知道你是否可以将变量传递给.footer驱动程序,以及bootstrap使用,chiro显示标签中的数据。 这是控制器的代码:

class JuegosController < ApplicationController
load_and_authorize_resource param_method: :allowed_params, except: [:index, :show]

def index
    @juego = Juego.all


end

def show
    @juego = Juego.find(params[:id])



end

def new
    @juego = Juego.new      
end

def create
    @juego = Juego.new(allowed_params)
    if @juego.save
        redirect_to juegos_path
    else
        render 'new'            
    end
end

def edit
    @juego = Juego.find(params[:id])
end

def update
    @juego = Juego.find(params[:id])
    if @juego.update_attributes(allowed_params)
        redirect_to juegos_path
    else
        redender 'new'
    end
end

def destroy
    @juego = Juego.find(params[:id])
    @juego.destroy
    redirect_to juegos_path
end

private
    def allowed_params
        params.require(:juego).permit(:id_juego, :nombre, :descripcion, :numero_jugadores, :imagen )
    end 

es este es el codigo del .footer:

  <footer class="footer" id="footer-new">
    <div class="container-fluid">
      <div class="row">
        <div class="col-md-3">
          <h4>ToyApp</h4>
          <p>
            <%= link_to 'Inicio',     page_path('home') %><br>
            <%= link_to 'Acerca de',  page_path('about') %><br>
            <%= link_to 'Contacto',   page_path('contact') %><br>
            <%= link_to 'Ayuda',      page_path('help') %><br>
            <%= link_to 'Términos',   page_path('terms') %>
          </p>
        </div>
        <div class="col-md-3">

          <h4>Juegos</h4>
          <p>


          </p>

        </div>


        <div class="col-md-6" id="bottom-logo-block">
          <img src="assets/images/a.png" alt="" width="80" height="80">
          <p>
            es una marca registrada. Esta prohibido su uso<br>
          </p>
          <%= link_to 'Políticas de privacidad', page_path('privacy') %>
        </div>

    </div>
    <div class="row">
      <div class="col-md-12">
        <br>
        <p>
        xxxxxxxx xxxxxxxxx xxxxxx
        </p>
    </div>
    </div>
  </footer>

我的问题是:如何显示标签名称或h1?

我试过这个但是不行:c

<h1><%= @juego.nombre %></h1>

请帮助我,我是新手。

2 个答案:

答案 0 :(得分:1)

如果在整个应用程序中使用了页脚,那么您可以使用

查看

content_for / yield

在页脚中:

<h1><%= yield :footer_title %></h1>

在视图中,您可以通过控制器/操作设置标题,如

<% content_for :footer_title { @juego.nombre } %>

<% content_for :footer_title do %>
  Another title
<% end %>

答案 1 :(得分:0)

这取决于呈现页脚的上下文。如果页脚是在定义了@juego的控制器操作的上下文中呈现的,那么您应该能够在该对象上调用方法。但有两件事。

1)您在不同的操作中以不同的方式定义@juego。在大多数情况下,它指的是单个对象,而在index方法中,它指的是@juego个对象的集合。在这种情况下,调用@juego.nombre几乎肯定会失败。

2)这是不好的做法。如果您的页脚是全局的(即,如果它在不同的上下文之间共享),那么您不应该假设始终定义特定于某个控制器的变量。