В моей articles_controller у меня есть определение последующихОшибка при оценке nil.sort_by
def index
@tags = Article.tag_counts_on(:keywords) || ''
klass = Article
klass = klass.tagged_with(@keyword) if (@keyword = params[:keyword]).present?
@articles = klass.paginate(:page => params[:page])
@articles = Article.where(:state => '4').paginate(:page => params[:page], :per_page => 10)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @articles }
end
end
и мои взгляды/статьи/index.html.erb У меня есть код:
<% @tags.sort_by(&:count).reverse.each do |k| %>
<% url_opts = {:action => "index", :controller => "articles"}
link_name = "#{k.name} (#{k.count})" %>
<% if @keyword == k.name %>
<%= link_to link_name, url_opts.merge(:keyword => nil), :class => "tag current_tag", :title => "Click again to see all" %>
<% else %>
<%= link_to link_name, url_opts.merge(:keyword => k.name), :class => "tag", :title => "Click to filter by #{k.name}" %>
<% end %>
<% end %>
Я использую рубин 1.9.2, Rails 3.0.11 и в Gemfile камень акт-в-taggable-на и последующий код
rails generate acts_as_taggable_on:migration
создать таблицы тегов й -осна-
В моих журналах у меня есть эта ошибка:
Rendered статьи/index.html.erb внутри макетов/приложений (57.4ms) Завершено 500 Внутренняя ошибка сервера в 189ms
ActionView :: Template :: Ошибка (у вас есть нулевой объект, если вы этого не ожидали! Возможно, вы ожидали экземпляр массива. Ошибка при оценке nil.sort_by)
Переменная @tags - это массив? и иметь нулевой объект?
вероятно, вы имеете право. когда в консоли пишите Article.tag_counts_on (: keyworld) Я беру пустой хеш: => []. Почему я этого не делаю сейчас. Я думал, что метка дескриптора дескриптора дескриптора, и по этой причине я создаю файлы app/models/tag.rb и app/models/tagging.rb, поэтому моя ошибка на табличном теге. –