有一個簡單的Rails應用程序窗體視圖。用戶通過「文件選擇器功能」(例如Google Picker)從他的API帳戶(例如Google Drive賬戶)中選擇一個文件,並且API通過JavaScript回調函數發送數據(url,縮略圖...)(見下面的JS代碼)。如何將Google Drive API中的數據傳遞到Rails應用程序模型?
如何通過JavaScript回調函數將來自API的數據傳遞到Rails模型?
代碼看起來像是如何在Rails _form文件中結束?控制器會發生什麼?
對不起,我是Rails的新手,這可能是一個新手問題。任何類型的建議,鏈接在哪裏閱讀更多關於它等將非常有幫助。我在尋找相當一段時間,但沒有運氣找到s.th.有用。 非常感謝您的幫助!
在HTML/JavaScript的:
<div class="btn btn-primary" id="gdrive" onclick="javascript:openPicker()">
Choose Google Drive File
</div>
<script type="text/javascript">
// The API developer key obtained from the Google Cloud Console.
var developerKey = '<DEV KEY>';
// Use the API Loader script to load google.picker.
function openPicker() {
gapi.load('picker', {'callback': createPicker});
}
// Create and render a Picker object for searching images.
function createPicker() {
var picker = new google.picker.PickerBuilder().
addView(google.picker.ViewId.DOCS).
setDeveloperKey(developerKey).
setCallback(pickerCallback).
build();
picker.setVisible(true);
}
// A simple callback implementation.
function pickerCallback(data) {
var url = 'nothing';
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
var doc = data[google.picker.Response.DOCUMENTS][0];
url = doc[google.picker.Document.URL];
}
var message = 'You picked: ' + url;
document.getElementById('gdrive').innerHTML = message;
}
</script>
<!-- The Google API Loader script. -->
<script type="text/javascript" src="https://apis.google.com/js/api.js?onload=loadPicker"></script>
一個例子的Rails模型:
create_table "postfiles", :force => true do |t|
t.text "gdrive"
t.integer "post_id"
end
再次,由於很多關於讀數。任何想法真的很感激!
爲了簡單起見,我們假設我只想保存通過API傳遞的URL --- url = doc [google.picker.Document.URL]; ---並將其保存在Rails模型「gdrive」中。 – YvonC