首页 > 解决方案 > Rails - 如果 CSV 中的值为 TRUE,如何呈现内容?

问题描述

我有一个 CSV 文件

Plant_ID,Short_note,Live

YCCXXX1,Description one,TRUE
    
YCCXXX3,Description three,FALSE

初始化器

  require 'csv'    
  plant_table = File.read('app/assets/csv/Plant_table_(USDA_Citrus).csv')
  PlantTable.destroy_all
  csv = CSV.parse(plant_table, :headers => true)
  csv.each do |row|
    PlantTable.create!(row.to_hash)
  end

在视图组件中呈现

<% @plant_tables.each do |plant_table| %>
  <tr>
    <td><%= link_to plant_table.Plant_ID, plant_table %></td>
    <td>PlantX, PlantY</td>
  </tr>
<% end %> 

但我希望它仅在LIVE属性为TRUE时才呈现这些。

我想要这样的东西

#plant_table_initializer.rb
  require 'csv'    
  plant_table = File.read('app/assets/csv/Plant_table_(USDA_Citrus).csv')
  PlantTable.destroy_all
  csv = CSV.parse(plant_table, :headers => true)
  csv.each do |row|
    if csv[row][2] == "TRUE"
    PlantTable.create!(row.to_hash)
    end
  end

标签: ruby-on-railsrubycsvruby-on-rails-6

解决方案


if row[2] == 'TRUE'
   render ...
end

应该给你排序。


推荐阅读