2017-09-21 6 views
0

urlを含む文字列をjavascriptを使って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

はいレールを使用しています – user6040594

答えて

0

は最終的にあなたが見ているものをあなたはおそらくしたいということであるデータ・セットJavaScriptでを構築し、隠しフィールドにデータ・セットを配置し、であなたの隠されたフィールドを使用してバックエンドに提出することですフォーム。

だから、より多くの情報を私はもっとあなたを助けることができるだろうが、パン粉を使用すると、このJavaScriptの同じページでフォームを作成し、あなたは以下のような隠しフィールドがあることです。

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

をしかし、あなたはmymodelを更新したいバックエンドで、あなたのモデルがあるものは何でもあるという事実を追跡する必要があります

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

:そして、あなたのjavascriptの終わりに、ちょうどあなたが持っている警告の代わりに以下を追加します。 、そしてそのuniversities更新するモデルmymodelのフィールド。フォームとJavaScriptでそれを更新することを忘れないでください。

+0

これは複雑な方法です。次の行にmyurl変数の代わりにハードコードされたURL文字列を置くと動作します。 html = Nokogiri :: HTML(open(myurl)) ここで私のjavascript変数を使って更新できる変数を使用してください。 – user6040594

+0

フロントエンドからバックエンドまで、コントローラを介して見たいと思っていますか?あなたはこのようにしてajaxを使うしかありませんが、私がajaxを持っている唯一の例はCoffeeScriptとReactです。 –

+0

なぜ私は単にjavascriptでruby変数にアクセスできますが、rubyでjavascript変数にアクセスすることはできませんか? – user6040594

関連する問題