2013-07-14 3 views
2

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

= simple_form_for :credits, url: "/accounts/#{@account.id}/topup" do |f| 
    = f.input :amount, collection: [100,500,1000,5000,10000],as: :radio_buttons 
    = f.button :submit 

Он работает, чтобы установить все значения и метки в коллекции. Я хочу что-то типа:

label: 100, value: 500 

Как это могло случиться?

ответ

2

Что-то вроде этого (от simpleform github).

Их пример:

form_for @user do |f| 
    f.collection_check_boxes :options, [[true, 'Yes'] ,[false, 'No']], :first, :last 
end 

и

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

= simple_form_for :credits, url: "/accounts/#{@account.id}/topup" do |f| 
    = f.collection_check_boxes :amount, [[100, 500], [500, 'a'], [1000, 'b'], [5000, 'c'], [10000, 'd']] 
= f.button :submit 
+0

Добавлено : во-первых,: последний в конце затем работал Как колдовство. Благодаря! Спасибо всем. –

0

Вы должны использовать массив массивов:

[[100, "One Hundred"], [200, "Two Hundred"], [300, "SPARTA!"]] 

Вы можете установить значение и маркировать отдельно.

0

Попробуйте это работает для меня:

= simple_form_for :credits, url: "/accounts/#{@account.id}/topup" do |f| 
    = f.input :amount, collection: [['100','500'], ['1000','5000'] ,['10000', '23']], as: :radio_buttons 
    = f.button :submit 
Смежные вопросы