2013-12-24 4 views
0

Я пытаюсь пройти через блок, который будет проходить через фразы и посмотреть, включают ли их твиты. Если твиты включают фразы, они должны получить «отредактированный» div-класс. Тем не менее, я продолжаю получать ошибку private method select called for "Walt":String. Я новичок, поэтому, пожалуйста, несите мой код.частный метод `select ', называемый« Walt »: String

Вид:

<section id="tweets"> 
    <ul> 
<% tweet = @tweets.each do |tweet| %> 
@<%= tweet.user.screen_name %> 
<%= image_tag(tweet.user.profile_image_url) %> 
    <li><%= link_to tweet.text, "https://www.twitter.com/#{tweet.user.screen_name}=twitter&include_entities=true" %></li> 

 <% for blockedshows in current_user.blockedshows %> 
     <%= blockedshows.phrases %> 
     <% for phrases in blockedshows.phrases %> 
      <%= blocked = phrases.text %> 
      <%= result = blocked.select do |b| %> 
       <%= tweet.include? b %> 
      <% end %> 

     <% end %> 

     <% if result.empty? %> 
      <%= tweet %> 
     <% else %> 
      <%= content_tag(:div, class: 'redacted') {tweet} %> 

     <% end %> 

    <%end %> 

Модель

class Phrase < ActiveRecord::Base 
    belongs_to :tvshow 
    belongs_to :blockedshow 

    def select 

    end 
end 
+0

'select' метод оболочки вызывается для' Array', 'Hash', или каждый' Enumerable', а не 'String' как в вашем случае. –

ответ

1

Ваша переменная уже содер заблокирован ns текст, который вы хотите сравнить с твитом, и вы пытаетесь выполнить на нем метод select (который является приватным методом для класса строк).

Рефакторинг код чуток

<% current_user.blockedshows.each do |blockedshow| %> 
    <% blockedshow.phrases.each do |phrase| %> 
      <% if tweet.text.include? phrase.text %> 
       <%= content_tag(:div, class: 'redacted') {tweet} %> 
      <% else %> 
       <%= tweet %> 
      <% end %> 
    <% end %> 
<% end %> 
+0

Спасибо, я использовал рефакторизованный код и теперь получаю 'неопределенный метод' include? ' для # 'error – ashleye6

+1

Исправлено добавлением, если tweet.text.include? – ashleye6

Смежные вопросы