【问题标题】:Rails Gem: How to get a gem application layout?Rails Gem:如何获得 gem 应用程序布局?
【发布时间】:2016-10-02 09:44:59
【问题描述】:

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

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 并使用布局“应用程序”在 gem 控制器中渲染它时,主 Rails 应用程序布局的视图将被覆盖。 但我只想让 Gem CRUD 视图获得收益。

【问题讨论】:

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


    【解决方案1】:

    我可以通过在 CRUD 视图的 do/end 块之外渲染的部分来解决它:

    部分在 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 -%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多