2013-04-18 7 views
1

Привет, у меня есть приложение Rails 3 с драгоценным камнем. Жидкость для шаблонов. Проблема в том, что я получаю эту ошибку с моим специальным тегом. Я буду использовать пример вики.Ошибка инициализации Rails3 и Liquid

В моей/Библиотеке/Я создал random.rb для моего пользовательского тега

class Random < Liquid::Tag 

    def initialize(tag_name, max, tokens) 
    super 
    @max = max.to_i 
    end 

    def render(context) 
    rand(@max).to_s 
    end 
end 

В моих инициализаторах папки с liquid.rb для регистрации этого тега.

Liquid::Template.register_tag('random', Random) 

В консоли

@template = Liquid::Template.parse("{% random 5 %}") 

И я получаю эту ошибку:

ArgumentError: wrong number of arguments (3 for 0..1) 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/block.rb:28:in `initialize' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/block.rb:28:in `new' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/block.rb:28:in `parse' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/document.rb:5:in `initialize' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/template.rb:58:in `new' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/template.rb:58:in `parse' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/liquid-2.5.0/lib/liquid/template.rb:46:in `parse' 
from (irb):14 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start' 
from /Users/Artau/.rvm/gems/ruby-1.9.3-p385/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

Но если я типа:

1.9.3-p385 :004 > @template = Liquid::Template.parse("{{random 5}}") 
=> #<Liquid::Template:0x007fa36b554108 @root=#<Liquid::Document:0x007fa36b553de8 @nodelist=[#<Liquid::Variable:0x007fa36b5536e0 @markup="random 5", @name="random", @filters=[]>]>> 

И когда мне делают:

1.9.3-p385 :005 > @template.render 
=> "" 

Любые идеи?

Благодаря

Я в Rails 3.2.13

+0

попробуйте переименовать свой класс, потому что в стандартной рубиновой библиотеке уже есть класс с именем Random –

+0

Спасибо, Родриго, в этом была проблема. Теперь работает. –

ответ

1

Try переименовать класс, потому что в стандартной библиотеке рубинового уже есть класс с именем Random.

+0

Большое вам спасибо! –

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

  • Нет связанных вопросов^_^