Rails: передать условие в контроллер и затем использовать его в частичном? - PullRequest
1 голос
/ 17 апреля 2011

Я новичок в этом, поэтому любая помощь очень ценится.

При создании интерфейса с вкладками я пытаюсь повторно использовать один и тот же партиал и контроллер и передать: условия в контроллер для создания каждой вкладки по-разному.

@wishes_category = Wish.find :all,
:order => 'id DESC',
:conditions => {:user_id => @current_user.id}

Для первой вкладки потребуется что-то вроде :category_id=>1 в контроллере: условия, таким образом, ограничивают то, что я показываю в нем. Я пытаюсь передать это условие в частичное, которое будет использовать предварительно ограниченную категорию @wishes_category с :category_id=>1

Спасибо! Наз

==

Исходя из того, что сказал Эрик, я затем ограничил @wishes_category таким образом <% if category_id == wish.category_id %> в частичном, таким образом решая задачу

1 Ответ

0 голосов
/ 17 апреля 2011

Вы можете передавать локальные параметры в партиал через его тег рендеринга, используя что-то вроде:

<%= render :partial => 'tab', :locals => {:category_id => 1} %>

Это устанавливает локальную переменную в партиале с именем category_id равным 1. В вашем партиале это будетссылаться просто используя <%= category_id %>.Теперь вы можете отображать один и тот же частичный файл несколько раз на странице с разными локальными переменными.

Конечно, переменная category_id должна существовать в частичном перед использованием, иначе она выдаст ошибку.Вы можете защититься от этого, проверив сначала <% if local_assigns[:category_id] %>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...