Ruby on rails 如何从Rails中导入的文件创建新帖子?

Ruby on rails 如何从Rails中导入的文件创建新帖子?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我已经用解析了一个Netscape书签文件,我正在尝试将文件中的书签导入名为Bookmark的模型中 当我导入文件时,我没有得到任何错误。它告诉我书签已经导入了,但是没有显示出来 如何从使用Markio解析的文件中正确创建书签 我的书签字段是title和href,它们与Markio所说的内容相匹配 模型 控制器 看法 我正在尝试导入的书签文件 编辑: 不太确定发生了什么显然Markio不像is说的那样进行解析。这是我导入文件时rails控制台所说的。它不会像它所说的那样返回书签数组。这就是它所做

我已经用解析了一个Netscape书签文件,我正在尝试将文件中的书签导入名为Bookmark的模型中

当我导入文件时,我没有得到任何错误。它告诉我书签已经导入了,但是没有显示出来

如何从使用Markio解析的文件中正确创建书签

我的书签字段是title和href,它们与Markio所说的内容相匹配

模型

控制器

看法

我正在尝试导入的书签文件

编辑: 不太确定发生了什么显然Markio不像is说的那样进行解析。这是我导入文件时rails控制台所说的。它不会像它所说的那样返回书签数组。这就是它所做的一切,然后它重定向到我的根url

Parameters: {"utf8"=>"✓", "authenticity_token"=>
"DAAu8486RreHqnFgUbDnh3/LfQcyvQxRLtqVqFAiQHNWgpZvhZgMBki5bY3IFIWwV
/m8aAGQ6FJywqvjuobB7w==", "file"=>#
<ActionDispatch::Http::UploadedFile:0x007ffe0434af58 @tempfile=#  
<Tempfile:/tmp/RackMultipart20150608-26033-vs4o71.html>,
@original_filename="bookmarks_6_6_15.html", @content_type="text/html",    
@headers="Content-Disposition: form-data; name=\"file\"; 
filename=\"bookmarks_6_6_15.html\"\r\nContent-Type: text/html\r\n">,   
"commit"=>"Import"}

正如我在注释中指出的,Markio::parse返回一个数组。 您必须迭代元素并为每个元素创建书签

def self.import(file)
  Markio.parse(file.path).each do |bookmark|
    Bookmark.create(title: bookmark.title, href: bookmark.href)
  end
end

不是。我在第2行中添加了每一个。

你说的“它没有出现”是什么意思?rails服务器的输出说明了什么?书签真的在rails控制台中保存了bookmark.last吗?不,书签没有保存,但Markio正在解析文件,我相信这是因为rails服务器为文件输出了一系列参数。所以我需要的是获取Markio解析的内容并用它创建一个书签。这可能就是为什么导入操作没有保存任何书签。是的,这就是为什么,但是有没有一种方法可以从这个数组中创建一个书签呢?好的,所以我用rails控制台在导入时说的话更新了我的问题。Markio没有像预期的那样返回数组,我不知道为什么。
<%= form_tag import_bookmarks_path, multipart: true do %>
  <%= file_field_tag :file %>
  <%= submit_tag "Import" %>
<% end %>
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<DL>
  <p>
    <DT><A HREF="http://www.google.com/">Google</A>
    <DT><A HREF="http://www.youtube.com/">Youtube</A>
  </p>
</DL>
Parameters: {"utf8"=>"✓", "authenticity_token"=>
"DAAu8486RreHqnFgUbDnh3/LfQcyvQxRLtqVqFAiQHNWgpZvhZgMBki5bY3IFIWwV
/m8aAGQ6FJywqvjuobB7w==", "file"=>#
<ActionDispatch::Http::UploadedFile:0x007ffe0434af58 @tempfile=#  
<Tempfile:/tmp/RackMultipart20150608-26033-vs4o71.html>,
@original_filename="bookmarks_6_6_15.html", @content_type="text/html",    
@headers="Content-Disposition: form-data; name=\"file\"; 
filename=\"bookmarks_6_6_15.html\"\r\nContent-Type: text/html\r\n">,   
"commit"=>"Import"}
def self.import(file)
  Markio.parse(file.path).each do |bookmark|
    Bookmark.create(title: bookmark.title, href: bookmark.href)
  end
end