在我的 Ruby on Rails 应用程序中,自行车租赁公司可以管理他们所有的自行车(预订、付款等)。
上下文
我想为自行车租赁公司 ( ) 提供将客人重定向到我平台上的在线预订流程的选项,shops
这样他们就可以让客户预订bike
. (例如在线预订过程仅适用于他们的商店)shop
当前状态
在阅读了一些在线文档(iFrame
和embedded 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?
});
}
})();