如何使用 Ruby on Rails 5 将数据从 URL 提取到表单中

Posted

技术标签:

【中文标题】如何使用 Ruby on Rails 5 将数据从 URL 提取到表单中【英文标题】:How to pull data from URL into form with Ruby on Rails 5 【发布时间】:2017-11-17 12:18:55 【问题描述】:

我有一个表格供用户填写以分享设计工作。但是字段与 dribbble.com 非常相似。

我看到一些网站允许用户粘贴自动填写表单的链接。示例可见https://www.uplabs.com/submit

我不需要有关如何执行此操作的确切代码。你能告诉一个方向吗?一些插件,一些例子,...?

示例;从链接填写表单(图像、标题、设计师 ID、描述等)https://dribbble.com/shots/1902343-Subscribe-to-our-newsletters

谢谢!

【问题讨论】:

你的意思是像https://your-url-here/?first_name=john&last_name=smith 这样的东西会在你的表单上填写名字和姓氏输入吗? 嗨@wholevinski 我刚刚用截图编辑了这个问题。谢谢! 我不确定我是否仍然理解......这部分 URL 是否会拉入表单数据? 1902343-Subscribe-to-our-newsletters @Designer 你想从链接中获取什么样的字段?网站的标题和元标记的描述? 给定 url 的帖子有数据,我想拉它并在我的网站中自动填写表格。可以在uplabs.com/submit 看到一个完美的工作示例 【参考方案1】:

您可以使用 Ajax 调用 Rails 控制器来做到这一点。 创建一个 Rails 控制器,它将从网页标题和元描述中删除。您可以像下面的示例中那样使用机械化。

然后使用 Ajax 调用将粘贴的 url 发送到该 rails 控制器操作并在那里执行报废

$("#url_input").on("paste", function(e) 
  $.ajax(
    url: "/url_data_grabber/grab",
    data: $("#url_input").val(),
    success: function(result) 
      $("#title").val(result["title"]);
      $("#title").val(result["description"]);
    
  );
);




require 'mechanize'
class UrlGrabberController < ApplicationController
  def grab
    pasted_url = params.fetch("pasted_url")
    page = agent.get(pasted_url)
    title = page.title

    node = page.at("head meta[name='description']")
    description = node["content"]

    render json: title: title, description: description
  end
end

【讨论】:

以上是关于如何使用 Ruby on Rails 5 将数据从 URL 提取到表单中的主要内容,如果未能解决你的问题,请参考以下文章

如何将 HSQLDB 与 Ruby on Rails 一起使用。

使用 Ruby on Rails 从数据库中的 yaml 序列化字段中获取大小数

如何从 ruby​​ on rails 上的现有远程 oracle 数据库中获取数据

如何从 Ruby on Rails 中的数据库查询中消除 N+1 查询?

Paypal 经常性问题 ruby​​ on rails

如何通过 websockets 在 ruby​​ on rails 和 reactJS 之间发送数据