2013-11-28 5 views
0

У меня есть этот код на моих взглядырубин на рельсах: странный выходной массив

<%= @quotes.each do |f| %> 
    <%=f[:underwriter]%>: £<%=f[:premium]%> 
    <br> 
<% end %> 

И в моем контроллере я передать его аргумент

@quotes = [{underwriter:"dtc",premium:500},{underwriter:"abc",premium:800}] 

Я ожидаю, что это распечатать андеррайтер и премиум, что он делает, однако по какой-то причине он целыми массивами в конце концов. Это показано ниже

dtc: £500 
abc: £800 
[{:underwriter=>"dtc", :premium=>500}, {:underwriter=>"abc", :premium=>800}] 

Кто-нибудь может просветить меня на то, что вызывает подобное поведение?

+0

удалите '=' из первой строки – Aguardientico

ответ

2

Вобще

<% @quotes.each do |f| %> 
    <%=f[:underwriter]%>: £<%=f[:premium]%> 
    <br> 
<% end %> 

Array#each - Вызывает данный блок один раз для каждого элемента в себя, передавая этот элемент в качестве параметра. когда iteartion завершено, верните self. <%= %> печатает то, что находится внутри тега, в файл erb, тогда как <% %> выполняет код ruby ​​в скобках.

Проверьте этот номер Rails, ERB syntax также.

+0

ура для разъяснения. Pesky = знак – DTC

+0

хорошее описание. Благодарю за это – unknownbits

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