2017-09-21 28 views
0

我需要通過javascript將包含url的字符串傳遞給我的ruby代碼。這段代碼寫在一個javascript函數中。如何在Ruby代碼中傳遞我的javascript字符串

for(var u=0;u<universities.length;u++) 
     { 
      var myurl = String(universities[u]); //my javascript string containing a url 
      <% 
       require 'Nokogiri' 
       require 'open-uri' 
       html = Nokogiri::HTML(open(myurl))//want to get title of that url 
       @hero = html.title 
      %> 
      names.push("<%[email protected]%>"); 

     } 
    alert(names); 
+0

您可以使用ajax來發布名稱變量,但您需要一個端點來發布。你說紅寶石,但你使用鐵軌嗎? –

+0

是的,我正在使用rails – user6040594

回答

0

最後您要查找的是,你可能要爲構建數據集在JavaScript,並把數據集到一個隱藏字段,然後使用您的隱藏字段中並提交到後臺表格。

所以更多的信息我能幫助你更多,但麪包屑是你犯了一個形式這段JavaScript的同一頁上,你有一個隱藏字段象下面這樣:

<%= form_for mymodel do |f| %> 
    <%= f.hidden_field :universities } %> 
    <%= f.submit "Done id: "create-university" %> 
<% end %> 

然後在您的JavaScript年底剛剛添加以下的,而不是警告你:

$("#mymodel_universities").val(names); 

但是,你必須保持軌道的事實mymodel是無論你在後端要更新模型,那universities您要更新的mymodel型號中的字段。不要忘記在表單和JavaScript中更新它。

+0

這是一個複雜的方式,我的代碼工作,如果我把一個硬編碼的url字符串,而不是myurl變量在下面的行 html = Nokogiri :: HTML(open(myurl)) 我只是想在這裏使用一個變量,我可以通過我的JavaScript變量進行更新。 – user6040594

+0

你想通過視圖從前端到後端進入你的控制器嗎?你只能這樣做,並使用ajax,但我唯一的例子就是使用CoffeeScript和React。 –

+0

爲什麼我可以簡單地在JavaScript中訪問ruby變量,但無法在ruby中訪問JavaScript變量? – user6040594

相關問題