转义javascript helper的编码不兼容问题

时间:2018-12-04 16:48:13

标签: javascript ruby-on-rails

我正在使用RSS阅读器,因此必须每x次检查是否有新文章到货。因此,我为使用javascript的人创建了一个函数,该函数先去控制器,然后去服务,再去控制器,并以js.erb视图结束。

我的第一个问题是js.erb文件存在编码问题。

第二个问题是,即使我没有数据,也无法在转到视图文件之前停止该功能。 js.erb然后出现错误,因为数据为零。

我的javascript函数:

var actu = setInterval(myTimer, 20000);

function myTimer() {
  $.ajax({
  url: '/fluxes/actu',
  method: 'GET',
  });
}

我的控制器动作:

def actu
  @fluxes = Flux.all
  @new_hash_article = Actualisation.new(@fluxes).call
  if @new_hash_article.length >= 1
    @new_hash_article.each do |key, value|
      @flux = key
      @article = value
      respond_to do |format|
        format.js
      end
    end
  end
end

我的服务:

require 'rubygems'
require 'simple-rss'
require 'open-uri'

class Actualisation

  def initialize(fluxes)
    @fluxes = fluxes
  end

  def call
    new_hash_article = {}

    @fluxes.each do |flux|
      url = flux.Url
      rss = SimpleRSS.parse open(url)
      @array_items = []
      rss.channel.items.each do |item|
        @array_items << item
      end
      @first = @array_items.first
      calculator = 0
      flux.articles.each do |article|
        if article.Publication == @first.pubDate.to_s
          calculator += 1
        else
          calculator += 0
        end
      end
      if calculator == 0
        article = Article.new
        article.Title = @first.title
        article.Description = @first.description
        article.Url = @first.link
        article.Publication = @first.pubDate
        article.Lu = 0
        article.flux_id = flux.id
        article.save
        new_hash_article[flux] = article
      end
    end
    return new_hash_article
  end
end

我的看法actu.js.erb

jQuery('#flux<%= @flux.id %>').append('<%= j render 'articles/show', 
article: @article %>');

如果有用,我不知道,但这是我的文章/节目:

<li id="<%= article.id %>">
  <div class="content">
    <p><%= article.Title %></p>

    <a href="<%= article.Url %>" target="_blank" data="<%= article.id 
     %>">Voir l'article <i class="fas fa-arrow-right"></i></a>
    <div id="switchlu" class="display">
      <% if article.Lu == 0 %>
        <%= link_to "Afficher comme Lu", articles_marklu_path(id: 
         article.id), :remote => true %>
      <% else %>
        <p><i class="fas fa-check"></i>Lu</p>
        <%= link_to "Afficher comme non Lu", articles_markpalu_path(id: 
         article.id), :remote => true %>
      <% end %>
    </div>
  </div>
</li>

问题:     [1]:https://i.stack.imgur.com/WTZBu.png

感谢您的时间和帮助:)

0 个答案:

没有答案