繁体   English   中英

Rails Gem:如何获取gem应用程序布局?

[英]Rails Gem: How to get a gem application layout?

我正在尝试使用默认的CRUD视图自定义Rails宝石。

app / views / new.html.erb:

<div class="wishlist">
  <div class="row">
    <div class="small-12 medium-10 large-8 small-centered columns">

      <h1><%= Spree.t(:creating_wishlist) %></h1>
      <%= form_for @wishlist do |f| %>
      <p><%= f.label :name, Spree.t(:name) %>:&nbsp;<%= f.text_field :name %></p>
      <p><%= f.check_box :is_private %>&nbsp;<%= f.label :is_private, Spree.t(:is_private) %></p>
      <%= f.submit Spree.t(:create) %>
      <% end -%>

    </div>
  </div>
</div>

我想在所有其他视图中避免使用相同的div容器.wishlist .row等。 我如何实现类似的目标:

# gem application layout:
<div class="wishlist">
  <div class="row">
    <div class="small-12 medium-10 large-8 small-centered columns">

      <%= yield %>

    </div>
  </div>
</div>

当我将其另存为app / views / layouts / application.html.erb并在布局为“ application”的gem控制器中进行渲染时,Rails应用程序主布局的视图将被覆盖。 但我只希望只有Gem CRUD视图才能获得收益。

我可以用我在CRUD视图的do / end-block外部渲染的部分内容来解决它:

部分位于app / views / base / _layout.html.erb中

<div class="wishlist">
  <div class="row">
    <div class="hide-for-small medium-1 large-2 columns"></div>
    <div class="small-12 medium-10 large-8 small-centered columns">
      <%= yield %>
    </div>
    <div class="hide-for-small medium-1 large-2 columns"></div>
  </div>
</div>

在我的CRUD视图中:

<%= render :layout => 'base/layout' do %>
  # content
<% end -%>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM