2

私はこれに似たものを作成しようとしています: Using helpers in rails 3 to output html

これが私のヘルパーです:

def section_references_to_html (section)
     concat content_tag (:ol, :class => 'sources') do
        section.references.each do |reference|
          concat content_tag (:li,content_tag(:a, reference.text, :src => reference.url))
        end
      end
  end

しかし、あらゆる種類の構文エラーが返されます。

/~/app/helpers/application_helper.rb:21: syntax error, unexpected ',', expecting ')'
     concat content_tag (:ol, :class => 'sources') do
                             ^
/~/app/helpers/application_helper.rb:21: syntax error, unexpected ')', expecting keyword_end
     concat content_tag (:ol, :class => 'sources') do
                                                  ^
/~/app/helpers/application_helper.rb:22: syntax error, unexpected keyword_do_block, expecting keyword_end
        section.references.each do |reference|
                                  ^
/~/app/helpers/application_helper.rb:23: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
          concat content_tag (:li,content_tag(:a, referen...
                            ^
/~/app/helpers/application_helper.rb:23: syntax error, unexpected ',', expecting ')'
...       concat content_tag (:li,content_tag(:a, reference.tex...
...                               ^
/~/app/helpers/application_helper.rb:23: syntax error, unexpected ')', expecting keyword_end

ここで何が間違っていますか?たぶん、パーシャルを使用する方が良いでしょう。

4

1 に答える 1

3

主な問題は、 と の間にスペースがあることcontent_tagです(。これを試して:

def section_references_to_html(section)
  content_tag(:ol, class: 'sources') do
    section.references.each do |reference|
      content_tag(:li, content_tag(:a, reference.text, href: reference.url))
    end
  end
end
于 2013-04-01T12:42:50.593 に答える