#ruby-on-rails
#ruby-on-rails
Вопрос:
Я довольно новичок в этом, поэтому любая помощь очень ценится.
При создании интерфейса с вкладками я пытаюсь повторно использовать тот же частичный контроллер and и передать: conditions контроллеру для построения каждой вкладки по-разному.
@wishes_category = Wish.find :all,
:order => 'id DESC',
:conditions => {:user_id => @current_user.id}
Для первой вкладки потребуется что-то вроде :category_id=>1
в controller’s:conditions, что ограничивает то, что я показываю в нем.
Я пытаюсь передать это условие частичному, который будет использовать предварительно ограниченную @wishes_category с :category_id=>1
Спасибо! Наз
==
Основываясь на том, что сказал Эрик, я затем ограничил @wishes_category
этот способ <% if category_id == wish.category_id %>
частичным, таким образом решив проблему
Ответ №1:
Вы можете передать локальные параметры частичному через его тег рендеринга, используя что-то вроде:
<%= render :partial => 'tab', :locals => {:category_id => 1} %>
Это устанавливает локальную переменную с частичным именем category_id
равной 1. В вашем частичном на него можно было бы ссылаться просто с помощью <%= category_id %>
. Теперь вы можете отображать один и тот же частичный файл несколько раз на странице с разными локальными переменными.
Конечно, переменная category_id
должна существовать в частичном перед использованием, иначе она выдаст ошибку. Вы можете защититься от этого, сначала проверив <% if local_assigns[:category_id] %>
.
Комментарии:
1. Спасибо за твою помощь, Эрик! Я получил локальную переменную category_id для передачи на все вкладки. В качестве продолжения, как бы я использовал это, чтобы повлиять на мой контроллер @wishes_category, чтобы применить условие?
2. Извините, я не видел вашего вопроса ранее, но я не совсем его понимаю … если вам все еще нужна помощь, пожалуйста, задайте другой вопрос и уточните подробнее. На самом деле причина, по которой я вернулся к этому, заключается в том, что я понял, что способ проверить, существует ли локальное значение в частичном, заключается в вызове
if local_assigns[:category:id]
. Я внес правку выше.3. Спасибо, Эрик! Я заставил его работать с вашим советом и буду использовать отредактированный код для проверки локального.