Какие методы доступны для: объекта в партиале в Rails? - PullRequest
1 голос
/ 28 декабря 2010

Я пытаюсь построить свои частички и повторять меньше, но у меня проблема. Следующее работает просто отлично:

В поле зрения:

<%= render 'valve' %>

Частично:

<% if @valve.length > 1 %>
<h3>Valve kit</h3>
<%= render 'not_enough' %>
<% else if @valve.length < 1 %>
  <h3>Valve kit</h3>

У меня будет много наборов, поэтому вместо того, чтобы повторять это для каждой переменной набора, я хотел бы сделать что-то вроде этого:

<%= render :partial => 'valve', :object => @valve %>

<% if valve.length > 1 %>
<h3>Valve kit</h3>
<%= render 'not_enough' %>
<% else if valve.length < 1 %>
  <h3>Valve kit</h3>

Но это нарушает метод valve.length. Итак, что меняется, когда я передаю @valve как: объект? Есть ли другой метод, который я могу использовать в качестве замены для достижения той же функциональности в частичном?

1 Ответ

1 голос
/ 28 декабря 2010

Вам необходимо передать хеш: localals частичному

<%= render :partial => 'valve', :locals => {:valve => @valve } %>

Затем используйте вентиль. * В вашем представлении, как вы.Старайтесь по возможности избегать использования переменных экземпляра в партиалах.

...