Ruby on rails 检查是否需要rubyonrails模型列
如何检查RubyonRails列是否需要一个列?我正在构建一个流程,人们可以在其中导入CSV并将文件中的标题与模型中的相关列相匹配。我不能保证它们会匹配,所以我希望用户可以手动匹配它们 理想情况下,我正在寻找类似于Ruby on rails 检查是否需要rubyonrails模型列,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,如何检查RubyonRails列是否需要一个列?我正在构建一个流程,人们可以在其中导入CSV并将文件中的标题与模型中的相关列相匹配。我不能保证它们会匹配,所以我希望用户可以手动匹配它们 理想情况下,我正在寻找类似于Model.column\u names[0]的内容。必填项? 如果该列是必需的,我希望用户能够为所有导入指定一个通用值,以便它们不会意外失败(因此下面的演示中使用了未使用的输入字段) 我可以上传文件内容并对其进行解析,并构建了一个表,用户可以在其中选择哪个CSV列与哪个模型列相匹配,
Model.column\u names[0]的内容。必填项?
如果该列是必需的,我希望用户能够为所有导入指定一个通用值,以便它们不会意外失败(因此下面的演示中使用了未使用的输入字段)
我可以上传文件内容并对其进行解析,并构建了一个表,用户可以在其中选择哪个CSV列与哪个模型列相匹配,但希望警告所需的使用。我还没有创建实际的导入元素,但是有很多其他问题,因此有很好的文档记录
我有一个谷歌,看不到任何东西,也许我使用了错误的搜索词,但任何帮助将不胜感激
提前谢谢
控制器:
require 'csv'
myfile = params[:file]
csv_text = File.read(myfile.path)
@csv = CSV.parse(csv_text, :headers => true)
@table_headers = Patient.column_names
视图:
跳过
风俗
如果我没弄错,您可以使用自定义验证返回特定错误(您希望为用户共享)。
基本上你需要覆盖validate代码>方法。
要识别此类记录(无效),您可以使用valid?
方法。
这是否回答了您的问题?谢谢你的时间,Alex,这对我保存导入时肯定很有帮助,但不完全是我想要的。马修为我指明了正确的方向。谢谢你抽出时间。
<% @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 %>