![](/img/trans.png)
[英]Understand embedded ActiveRecord call in javascript, ruby on rails
[英]Call a ruby method with different parameters embedded in javascript
我有這種ruby
方法:
def something(sometext, jsvariable, rubyobject)
return HTMLOBJECT
end
我想在javascript
函數中像這樣調用此方法:
$("#someid").append('<% something("sometext", '/jsvar/', rubyobject) %>');
它不起作用。我不知道如何使用正確的變量格式從javascript
函數中調用此方法。 我真的不知道確切的語法。
任何幫助深表感謝。
更新:這就是我想要做的
function somejsfunc(){
$.ajax({
url: "/app/SomeController/someMethod",
data: {'something': something }
success: function(data){
var $response1 = $(data);
jsvar = $response1.find('#anotherselector').text();
$("#someid").append('<% something("sometext", '/jsvar/', @rubyobject) %>');
}
});
}
請注意
def something
是一種通用方法,它根據這些參數以及傳遞給它的其他數據返回HTML DOM元素。
您無法執行此操作,因為erb模板會在應用程序啟動之前進行編譯。 如果要發送一些js參數,請使用遠程請求從服務器獲取信息。
UPD:類似這樣的東西
$.ajax({
url: '/some_url',
data: { jsvar: jsvar },
success: function(data) {
$("#someid").append(data.sometext);
}
});
通常,我們的ruby
在服務器上運行,而JavaScript
在瀏覽器中運行,因此從另一個調用一個幾乎是不可能的。 您當然可以求助於@uselesssmile的建議者Ajax,但這不僅僅涉及簡單的方法調用。 另一方面,您可以使用opalrb
將ruby
編譯為JavaScript
,然后可以將其打包到客戶端的JavaScript
並直接調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.