Любой возможный способ установить значения radio_button_tag с помощью заданного значения базы данных - PullRequest
0 голосов
/ 25 января 2011

У меня есть radio_button_tag в форме, которая содержит различные значения для текущей доступности людей:

Майк Донналл o Доступен o Вне офиса o Отпуск

Итак, изначально вы открываете формуи выберите значение, затем оно устанавливает значение в таблице «Состояние» для этого сотрудника.

Однако есть также функция, позволяющая повторно открыть форму и обновить его текущее состояние, возможно, с «Отпуск» до «Доступно».

У меня такой вопрос, есть ли вообще эта радио-кнопка: отмеченный может быть изменен для принятия пользовательского метода, я нашел что-то в аналогичном сообщении, но я хочу, чтобы значение для этой радио-кнопки было установленок значению в БД.

Мой код пока что, возможно, удар в темноте:

Вид:

<% @people.each do |p| %>
    <% @statuses.each do |s| %>
        <%= "#{p.name}" %>
        <%= "#{s.status_name}" -%><%= radio_button_tag ['person', p.id], ['status',     
             s.id], checked?(p.id) %>
 <% end %>
<% end %>

Помощник:

def checked?(person)
    @person = person
    @status = Status.find_by_sql(['select status_id from statuses where person_id = ?, @person])

    if @result
 return true

конец

Как вы можете видеть, я немного растерялся здесь, но я понимаю, что метод должен возвращать значение флажка, который необходимо проверить, но мне интересно, потому что это проверенная функциональность, будет ли он ограничен только истиннымили ложь?

Так что для people.status.id проверьте, является ли оно истинным или ложным.

1 Ответ

1 голос
/ 26 января 2011

Из SQL вашего помощника кажется, что вы установили следующие отношения между людьми и статусами:

class Person < ActiveRecord::Base
  has_one :status
end

class Status < ActiveRecord::Base
  belongs_to :person
end

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

person = Person.first
person_status = person.status

Используя эти знания, желаемый результат просмотра становится довольно простым:

<% @people.each do |p| %>
  <p><%= "#{p.name}" -%>
  <% @statuses.each do |s| %>
    <%= "#{s.status_name}" -%>
    <%= radio_button_tag ['person', p.id], 
                         ['status', s.id],
                         (p.status == s) ? true : false %>
  <% end %>
<% end %>

Конечно, вы можете извлечь логику для помощника, но в этом нет необходимости.

Что касается личной заметки, то я не представляю эту информацию пользователю так сильно, как слишком много информации в одной строке. Я предлагаю вам ввести имя человека в тег p и использовать тег ul для статусов.

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