Rails - условные элементы формы? - PullRequest
0 голосов
/ 21 октября 2010

У меня есть следующее в форме:

<% = f.hidden_field (: project_id,: value => @ project.id)%>

Эта частичная форма иногда содержит @project. Иногда это не так. Это характер приложения.

Но я хочу использовать один частичный, потому что это большая форма. Проблема здесь, если она не содержит @project, страница ОШИБКИ ....

Как мне сделать следующее:

  • Отображать скрытое поле, только если @project определен
  • Если @project не определен, присвойте полю значение = ""

Спасибо!

Ответы [ 2 ]

3 голосов
/ 21 октября 2010

Вы, кажется, спрашиваете пару разных вещей. Если вы хотите условно визуализировать поле, то есть поле вообще не отображается, если @project не определено, сделайте следующее:

<%= f.hidden_field(:project_id, :value => @project.id) if @project %>

Если вы хотите, чтобы значение было пустым, когда нет проекта, вы можете немного урезать условное выражение предыдущего ответа:

<%= f.hidden_field (:project_id, :value => @project ? @project.id : '') %>

Нет необходимости проверять, что @project определено и не равно nil, поскольку это глобальная переменная, и ее непосредственный вызов не вызовет ошибку "no method".

0 голосов
/ 21 октября 2010
<%= f.hidden_field (:project_id, :value => defined?(@project) && @project ? @project.id : '') %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...