コードは以下のようになっております。
ajax_controller.rb
def data url = URI('http://news.yahoo.co.jp/pickup/rss.xml') http = Net::HTTP.new(url.host) response = http.get(url) @data = Hash.from_xml(response.body).to_json.html_safe end
index.html.erb
<h1>Ajax#index</h1> <p>※AjaxによるYahoo!ニュースのヘッドライン取得サンプル。</p> <hr> <div id="result">no information...</div> <script> var f function(){ $.ajax({ type: 'GET', url: '/ajax/data' }); }; setTimeout(f, 600000); f(); </script>
data.js.erb
var data = <%= @data %>; var result = '<table class="info">'; result += '<tr><th class="title">' + data.rss.channel.title + '</th></tr>'; result += '<tr><td class="desc">' + data.rss.channel.description + '</td></tr>' data.rss.channel.item.forEach(function(e){ result += '<tr><td class="item"><a href="' + e.link + '" target="_blank">' + e.title + '</a></td></tr>'; }); result += '</table>' $('#result').html(result);
ajax.html.erb
<!DOCTYPE html> <html> <head> <title>Cards</title> <%= csrf_meta_tags %> <%= stylesheet_link_tag 'ajax', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <div class="card"> <%= yield %> </div> </body> </html>
routes.rb
get 'ajax/data'
OSはwindow8です。
Ruby on rails5入門書に沿って書きました。
コードに誤り、あるいはコードが足りていないのでしょうか。お分かりの方お教えください。不足している情報があれば仰ってください。よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/09 13:23