简体   繁体   English

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

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

I'm trying to customize a Rails Gem with the default CRUD-Views. 我正在尝试使用默认的CRUD视图自定义Rails宝石。

app/views/new.html.erb: 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>

I want to avoid the same div containers .wishlist .row etc. in all the other views. 我想在所有其他视图中避免使用相同的div容器.wishlist .row等。 How can i achieve something like: 我如何实现类似的目标:

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

      <%= yield %>

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

When i save it as app/views/layouts/application.html.erb and render it in the gem controller with layout 'application' then the view of the main Rails Application Layout will be overwritten. 当我将其另存为app / views / layouts / application.html.erb并在布局为“ application”的gem控制器中进行渲染时,Rails应用程序主布局的视图将被覆盖。 But I just want only the Gem CRUD views to get yield. 但我只希望只有Gem CRUD视图才能获得收益。

I could solve it with a partial that i render outside a do/end-block of the CRUD Views: 我可以用我在CRUD视图的do / end-block外部渲染的部分内容来解决它:

partial in app/views/base/_layout.html.erb 部分位于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>

and in my CRUD Views: 在我的CRUD视图中:

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

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

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