2014-09-05 1 views
1

У меня есть информация, которую я хочу упростить, используя некоторые частичные. В принципе, я хочу что-то сделать по строкамRails Render Partial Inside One Line Block

<%= 2.times { |j| render 'item_expanded', item: @social_json_feed[i + j], index: (i + j) } %> 

Однако вышеуказанный код не отображает частичный. Вместо этого он возвращает значение «2» два раза. Если я напишу блок как блок do-end, он работает так, как и следовало ожидать.

<% 2.times do |j| %> 
    <%= render 'item_expanded', item: @social_json_feed[i + j], index: (i + j) %> 
<% end %> 

Производит частичный способ, который я хочу. Но если блок do-end работает правильно, однострочный блок должен также работать правильно, верно? Это просто что-то о том, как отформатирован однострочный блок или что-то еще глубже в магии Rails? Кроме того, почему первый пример кода возвращает «2» дважды?

+1

Что произойдет, если вы удалите знак равенства? <% 2times {| j | render 'item_expanded', item: @social_json_feed [i + j], index: (i + j)}%> – javiyu

+0

Это ничего не отображает. ERB должен «=» указывать, что логика должна отображаться на странице. –

ответ

2

Это потому, что в первом случае оно отображает только возвращаемое значение метода 2.times, которое равно 2. Вы должны просто использовать вторую нотацию.

+0

@ RyanB - мой ответ ясен? Помогло ли это? –

+0

Да, это объясняет возвращение 22. Мне бы хотелось найти способ сделать то, что я хочу, с одним строком. Есть идеи? –

1

Если вы добавляете звонок в map, вы должны иметь возможность хранить все на одной линии.

<%= 2.times.map { |j| render 'item_expanded', item: @social_json_feed[i + j], index: (i + j) } %> 
+0

Сделал это выстрелом, это заканчивается тем, что возвращает массив с содержимым частичного числа, включенного в строку x 2. Интересный эксперимент. –

+0

Что вокруг этого кода? Он должен отображать только дважды. Переменная 'i' заставляет меня думать, что у вас есть внешний цикл, который может учитывать рендеринг четыре раза. –

+0

Да, его петля внутри цикла. Способ работы фида требует, чтобы информация была визуализирована определенным образом, невозможным с одним циклом. Если вам нравится, я могу нажать полный код для фида. –

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

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