【发布时间】:2020-11-17 22:14:43
【问题描述】:
如何检查是否需要 Ruby on Rails 列的列?我正在构建一个流程,人们可以在其中导入 CSV 并将文件中的标题与模型中的相关列相匹配。我不能保证它们会匹配,所以宁愿用户手动匹配它们。
理想情况下,我正在寻找类似Model.column_names[0].required?
如果需要该列,我希望用户能够为所有导入指定一个通用值,这样它们就不会意外失败(因此在下面的演示中未使用输入字段)。
我可以上传文件内容并解析它们,并建立了一个表格,用户可以在其中选择哪个 CSV 列与哪个模型列匹配但想警告使用哪些是必需的。我还没有创建实际的导入元素,但是关于 SO 的各种其他问题都有据可查。
我有一个谷歌,看不到任何东西,也许我使用了错误的搜索词,但任何帮助将不胜感激。
提前致谢!
控制器:
require 'csv'
myfile = params[:file]
csv_text = File.read(myfile.path)
@csv = CSV.parse(csv_text, :headers => true)
@table_headers = Patient.column_names
查看:
<% @table_headers.each_with_index do |header, table_i| %>
<tr>
<td>
<%= header %>
</td>
<td>
<select id="table_column[<%= table_i %>]"=>
<option value="skip">Skip</option>
<option value="custom">Custom</option>
<% @csv.headers.each_with_index do |column, file_i| %>
<option value="<%= file_i %>"><%= column %></option>
<% end %>
</select>
</td>
<td>
<input>
</td>
<tr>
<% end %>
【问题讨论】:
-
这能回答你的问题吗? Rails: List Required Attributes For Create
标签: ruby-on-rails ruby rubygems