2013-09-17 1 views
0

Я работаю над проектом RoR с драгоценным камнем Simple_Form. Для тех, кто не знает, простая форма создает более простые формы помощников для использования в представлениях. Мой вопрос касается помощника f.association, который позволяет пользователям легко выбирать ассоциации на моделях через поле выбора, переключатели или флажки.Использование render как value_method в Rails Simple Form?

f.association имеет опцию, называемую value_method, которая позволяет вам передать метод для генерирования имени отдельных моделей в ассоциации на выбор. По умолчанию используется только to_s, поэтому он будет работать с полями выбора. Тем не менее, я использую радиокнопки, и я хотел бы знать, знает ли кто-нибудь о способе использования частичного метода рендеринга как value_method.

В моей настройке у меня есть пользовательская модель с частицей user.haml, которую я хотел бы отображать рядом с каждым флажком, так что пользователи, выбирающие других пользователей, могут легко распознать пользовательский div с изображением, именем , и последний логин для выбора.

+1

Вы можете попробовать пропустить лямбду в value_method и сделать здесь часть рендеринга. Однако не пробовал. См. Http://stackoverflow.com/questions/10728461/simple-form-collection-labels – steakchaser

ответ

1

Спасибо, стейкхазер ответил на мой вопрос своим комментарием. Это решение:

f.association :some_association, label_method: lambda { |obj| render obj } 

я понял метод этикетки лучше, чем метод значения, потому что даже с флажками и радио-кнопки, простая форма все еще поместить значения в опции value="..." атрибута. Это вызвало ошибку рендеринга html.