0

在我的 Ruby on Rails 应用程序中,自行车租赁公司可以管理他们所有的自行车(预订、付款等)。

上下文 我想为自行车租赁公司 ( ) 提供将客人重定向到我平台上的在线预订流程的选项,shops这样他们就可以让客户预订bike. (例如在线预订过程仅适用于他们的商店)shop

当前状态 在阅读了一些在线文档(iFrameembedded JS)后,我决定嵌入式 JS 表单最适合此目的。

第一步是创建一个嵌入式 JS 表单

  • arrival
  • departure
  • bike_category[可选的]

提交此表格后,预订会继续显示所有可用的索引页面bike_categories

问题

这是我第一次这样做,我不确定我的 Rails 应用程序中的流程应该如何生成小部件以及所有相应文件的位置。

当我现在看它时,

  • 我应该首先在中创建一个 javascript 文件app/javascript/component/bike_search_form.js
    • 在这里,我不知何故需要掌握谁发送了请求,以及他们是否被允许
    • 此外,javascript文件应该等到外部页面加载完毕,然后加载表单的css和表单本身
  • 该表单是通过一个小部件控制器生成的,该控制器指向一个文件views/widget/bike_search_form.html.erb

这个流程是否有文件+它们的位置是否正确或者我错过了什么/很多?

代码

由商店实现的脚本

<div id="bike_search_form"></div>

<script src="#where should the script be?"></script>

<script>

    var bike_search_form = new bike_search_form('');
    bike_search_form.post_url = 'https://.myrailsapp.com';
    bike_search_form.create();

</script>

app/javascript/component/bike_search_form.js

(function() {
var jQuery;
if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2') {
    var script_tag = document.createElement('script');
    script_tag.setAttribute("type","text/javascript");
    script_tag.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
    if (script_tag.readyState) {
      script_tag.onreadystatechange = function () { // For old versions of IE
          if (this.readyState == 'complete' || this.readyState == 'loaded') {
              scriptLoadHandler();
          }
      };
    } else {
      script_tag.onload = scriptLoadHandler;
    }
    (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
} else {
    jQuery = window.jQuery;
    main();
}

function scriptLoadHandler() {
    jQuery = window.jQuery.noConflict(true);
    main();
}
function main() {
    jQuery(document).ready(function($) {
        var css_link = $("", {
            rel: "stylesheet",
            type: "text/css",
            href: "<%= URI.join(root_url, path_to_stylesheet("widget.css")).to_s %>"
        });
        css_link.appendTo('head');

       #Something to generate the form?
    });
}
})();

4

0 回答 0