Rails 3 - метод Gem предков не работает - PullRequest
2 голосов
/ 19 октября 2011

привет люди

Я следую этому уроку: http://railscasts.com/episodes/262-trees-with-ancestry

когда я попытался сделать "упорядочить (: order =>: id)", я получил это сообщение

    undefined method `arrange' for #<Array:0x8c19780>

Extracted source (around line #4):

1: 
2: <h1>Listing categories</h1>
3: 
4: <%= nested_categories @categories.arrange(:order => :id) %>
5: 
6: <br />
7:

Можете ли вы помочь мне, пожалуйста?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 19 октября 2011

Я использую Gem предков, и он прекрасно работает для меня.Например:

 require 'awesome_print'                  # just for nice demo output
 ap  Account.arrange(:order => :id) ; 1   

Вам нужно запустить его на самом классе Категории - это метод класса

Попробуйте в консоли Rails!

3 голосов
/ 21 февраля 2012

Я уточню ответ @ Тило:

В вашем контроллере выполните:

def index
  @categories = Category.arrange(:order => :created_at)

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @categories }
  end
end

И, по вашему мнению, выполните:

<%= nested_categories @categories %>

Я использую Rails 3, и камень "Ancestry" кажется отличной заменой камня "Acts As Tree".

1 голос
/ 23 августа 2014

Как я описал в этом посте ...

Методrange () действует либо на уровне класса, либо в именованной области действия, а не в возвращаемом массиве значений.Например, если вы хотите вызыватьrange () для таблицы с именем «Activity», это сработает и вернет всю таблицу в упорядоченном формате:

Activity.arrange

Однако, если вы хотите вызватьrange наконкретное дерево в таблице, к которому вы бы пришли:

Activity.find(...).subtree.arrange

'поддерево' - это именованная область, предоставляемая гемом has_ancestry.Таким образом, методrange () должен работать для следующих именованных областей:

  • предки
  • потомков
  • братьев и сестер
  • потомков
  • поддерево
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...