ruby-on-rails - 仅当用户输入数字时,如何动态显示项目(图标)?导轨 5.2
问题描述
我正在构建一个房地产应用程序,用户可以在其中添加浴室、车库、厨房等设施。
问题是,我希望如果用户介绍一个数字,比如 1 个浴室和 1 个厨房,如果他将其他设施留空,它只会显示他填写的那个。我使用嵌套属性:
property.rb 模型
class Property < ApplicationRecord
belongs_to :owner
has_many :amenities
accepts_nested_attributes_for :amenities
end
amenity.rb 模型
class Amenity < ApplicationRecord
belongs_to :property
end
显示.html.erb
<div class="section">
<div class="row">
<div class="container">
<div class="col l6">
<h5>Description</h5>
<p class="text-justify"><%= @property.description %></p>
</div>
<div class="col l6">
<h5>Amenities</h5>
<!--Nested icons-->
<% @property.amenities.each do |amenity|%>
<div class="col l2">
<div class="center-align">
<i class="material-icons-two-tone px32 no-margin-top-bottom">fitness_center</i>
<p class="no-margin-top-bottom">gym</p>
<p class="no-margin-top-bottom"><%= amenity.gym %></p>
</div>
</div>
<div class="col l2">
<div class="center-align">
<i class="material-icons-two-tone px32 no-margin-top-bottom">fitness_center</i>
<p class="no-margin-top-bottom">kitchen</p>
<p class="no-margin-top-bottom"><%= amenity.kitchen %></p>
</div>
</div>
<% end %>
</div>
</div>
</div>
物业网络表格
<%= form_with(model: property, local: true) do |form| %>
<% if property.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(property.errors.count, "error") %> prohibited this property from being saved:</h2>
<ul>
<% property.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="section">
<div class="row">
<div class="container">
<div class="col l9">
<div class="col l5">
<div class="input-field">
<i class="material-icons-two-tone prefix">edit</i>
<label for="icon_prefix"><%= form.label :name %></label><br />
<%= form.text_field :name, class:"form-control" %>
</div>
</div>
<div class="col l6">
<div class="input-field">
<i class="material-icons-two-tone prefix">edit</i>
<label for="icon_prefix"><%= form.label :description %></label><br />
<%= form.text_area :description, class:"form-control materialize-textarea" %>
</div>
</div>
<div class="col l2">
<div class="input-field">
<i class="material-icons-two-tone"></i>
<label for="icon_prefix"><%= form.label :price %></label>
<%= form.number_field :price, class:"form-control" %>
</div>
</div>
</div>
<div class="col l12">
<div class="section">
<h5>Amenidades</h5>
<%= form.fields_for :amenities do |amenities_form| %>
<div class="col l2">
<div class="input-field">
<i class="material-icons-two-tone prefix">fitness_center</i>
<label for="icon_prefix"><%= amenities_form.label :gym %></label><br>
<%= amenities_form.number_field :gym %>
</div>
</div>
<div class="col l2">
<div class="input-field">
<i class="material-icons-two-tone prefix">kitchen</i>
<label for="icon_prefix"><%= amenities_form.label :kitchen %></label><br>
<%= amenities_form.number_field :kitchen %>
</div>
</div>
<div class="col l2">
<div class="input-field">
<i class="material-icons-two-tone prefix">garage</i>
<label for="icon_prefix"><%= amenities_form.label :garage %></label><br>
<%= amenities_form.number_field :garage %>
</div>
</div>
<% end %>
</div>
</div>
</div>
</div>
</div>
<div class="section">
<div class="actions center-align">
<%= form.submit class:"waves-effect waves-light btn" %>
</div>
</div>
<% end %>
如您所见,我必须复制图标,但问题是如果用户留空,则数字不会显示,但图标会显示,所以我只想动态显示图标和便利设施编号。
我会感谢你的帮助!!:D
解决方案
在你的show.html.erb你可以添加条件 - 我已经添加了amenity.gym
<div class="section">
<div class="row">
<div class="container">
<div class="col l6">
<h5>Description</h5>
<p class="text-justify"><%= @property.description %></p>
</div>
<div class="col l6">
<h5>Amenities</h5>
<!--Nested icons-->
<% @property.amenities.each do |amenity|%>
<% if amenity.gym.present? %> ----> From Here
<div class="col l2">
<div class="center-align">
<i class="material-icons-two-tone px32 no-margin-top-bottom">fitness_center</i>
<p class="no-margin-top-bottom">gym</p>
<p class="no-margin-top-bottom"><%= amenity.gym %></p>
</div>
</div>
<% end %> -- Till Here
<div class="col l2">
<div class="center-align">
<i class="material-icons-two-tone px32 no-margin-top-bottom">fitness_center</i>
<p class="no-margin-top-bottom">kitchen</p>
<p class="no-margin-top-bottom"><%= amenity.kitchen %></p>
</div>
</div>
<% end %>
</div>
</div>
</div>
推荐阅读
- regex - 如果存在的话,如何使用正则表达式匹配某些单词(如果不匹配其他单词)
- c++ - 如何根据模板类型生成随机数来填充动态数组?
- python - Geopandas 连接点
- java - 如何使用 Selenium 和 Java 打印从带有空格分隔符的网页中提取的文本
- java - UnsupportedOperationException 删除时
- python - 如何将ipynb导入py?
- c# - 如何比较 IEnumerable
> 基于 C# 中的匹配键 - f# - 传递元组时类型不匹配
- c++ - DLL的std :: set_terminate?
- tensorflow - 细微的变化会在张量流中产生 nan 错误