除模型表单外,Rails还提交html表单

时间:2013-10-23 15:47:14

标签: html ruby-on-rails forms

我对使用javascript知识非常少的rails很新。这是免责声明:)

我在rails应用程序中使用简单的表单和haml来创建模型的实例。代码很简单,效果很好。基本上就是这个......

= simple_form_for @account, :validate => true, :url => { :action => 'create' } do |account|
  = account.input :name, :placeholder => "Company name", :label => false
  = account.input :first_name, :placeholder => "First name", :label => false
  = account.input :last_name, :placeholder => "Last name", :label => false
  = account.submit "Create my account"

我简化了上述内容。

我的销售团队来找我并要求我在每次创建新帐户时都在salesforce中创建一个潜在客户。 Salesforce在廉价端具有称为web to lead的功能,这实际上是一种Web表单。同样,表单的简化版本看起来像这样......

<form action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">
<input type=hidden name="oid" value="00Db0000000bAtK">
<input type=hidden name="retURL" value="http://www.breathehr.com/blog/">
<label for="first_name">First Name</label><input  id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br>
<label for="last_name">Last Name</label><input  id="last_name" maxlength="80" name="last_name" size="20" type="text" /><br>
<label for="company">Company</label><input  id="company" maxlength="40" name="company" size="20" type="text" /><br>
<input type="submit" name="submit">
</form> 

现在,我的想法是我可以使用屏幕中的变量填充此表单,然后以某种方式获取rails simple_form以在提交时提交html表单。如果有必要,我可以访问了解java和ajax的人,但我正在寻找最好和最简单的解决方案。

所以我的两个问题是

  1. 是否可以使用隐藏表单并让simple_form提交按钮提交两种表单
  2. 解决此问题的最佳方法是什么

1 个答案:

答案 0 :(得分:1)

我想如果可能的话,我会这样做:

  1. 在Rails中创建帐户。在这一步中不要担心Salesforce。
  2. 在Rails中创建帐户后,在Salesforce中创建潜在客户。我可能不会用这个HTML表单路由。看起来Salesforce有REST API,所以我可能会使用它。一种选择是在:after_create模型中创建一个Account挂钩,以进行API调用。另一种选择是在保存帐户后立即从AccountsController进行API调用。
  3. 希望这会让你走得更远。

    编辑:如果您无法使用API​​,我的建议是相同的,只需将“make API call”替换为“向Salesforce发送HTTP请求”。 HTTP请求将包含oidretURLfirst_namelast_name等。我会处理在服务器端发出HTTP请求而不是尝试制作两种表单“同时提交”或类似的东西。

    如果您需要有关如何执行HTTP请求部分的指导,我建议您另外提出一个问题。提示:作为第一步,创建一个独立的迷你项目,向Salesforce发送HTTP请求,仅此而已。一旦你有了这个工作,就把它加入到更大的程序中。