Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 检查是否需要rubyonrails模型列_Ruby On Rails_Ruby_Rubygems - Fatal编程技术网

Ruby on rails 检查是否需要rubyonrails模型列

Ruby on rails 检查是否需要rubyonrails模型列,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,如何检查RubyonRails列是否需要一个列?我正在构建一个流程,人们可以在其中导入CSV并将文件中的标题与模型中的相关列相匹配。我不能保证它们会匹配,所以我希望用户可以手动匹配它们 理想情况下,我正在寻找类似于Model.column\u names[0]的内容。必填项? 如果该列是必需的,我希望用户能够为所有导入指定一个通用值,以便它们不会意外失败(因此下面的演示中使用了未使用的输入字段) 我可以上传文件内容并对其进行解析,并构建了一个表,用户可以在其中选择哪个CSV列与哪个模型列相匹配,

如何检查RubyonRails列是否需要一个列?我正在构建一个流程,人们可以在其中导入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 %>