[英]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) %>: <%= f.text_field :name %></p>
<p><%= f.check_box :is_private %> <%= 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.