Formtastic - brak deafaultowej wartości w drop down list

Hej,
Mam taki mały problem że, przy wyświetlania (np do edycji) rekordu, formtastic nie generuje w odpowiednim tagu parametru selected.

Dokładnie wygląda to tak że mam dwa modele

[code]class Currency < ActiveRecord::Base
set_primary_keys :currency_id

has_many :sallary_ranges[/code]

[code]class SallaryRange < ActiveRecord::Base
set_primary_keys :sall_range_id

belongs_to :currency, :foreign_key => :currency_id[/code]
no i teraz edytujemy sobie sallary, i dla pola waluta tworzy się piekne pole rozwijane w dostępnymi walutami.
Zapis działa perfecto, natomiast w trybie edycji pole rozwijane w waultą jest ustawione na pustą wartość
wygenerowany html wyglada tak

[code]

Swiss Franc Euro Polish zloty US Dolar[/code] tak więc przy jednym z option brakuje selected.... nie mogę tego przekazać w żaden sposób np przez :input_html bo to nie dotyczy bezpośrednio taga select tylko taga value.

pozdrawiam i z góry dzięki za odpowiedz
Krzysiek

jest ok, po prostu masz blank na true

daj

f.input …, allow_blank? => false

jakos tak masz to w dokumentacji

Hej,
Pewnie chodzi ci o

:include_blank => false

niestety to powoduje tylko tyle, że nie ma wartości pustej czyli nie ma
Niemniej to nic nie wnosi do tematu, ponieważ przy edycji rekordu combo box powinien się ustawić na wartośc wynikającą z tego co jest w rekordzie, a nie na pierwsza z brzegu…

pozdrawiam
krzysiek

mozesz użyć atrybutu :selected , ale dostaniesz ostrzeżenie w logu że będzie on usunięty
DEPRECATION WARNING: The :selected, :checked (and :default) options are deprecated in Formtastic and will be removed from 1.0. Please set default values in your models (using an after_initialize callback) or in your controller set-up. See http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html for more information…

Chyba się nadal nie rozumiemy :wink:
Nie chodzi mi o ustawienie wartości domyślnej przy tworzeniu, tylko o ustawienie właściwej wartości przy edycji…
Coś jest chyba zrypane, bo dla radio buttonów działa perfecto… w grupie radio buttonów właściwy jest zaznaczony

<%= f.input :currency , :as => :radio, :include_blank => false, :required => true, :input_html => { :disabled => lv_disable_all_input} %>

generuje

... <input checked="checked" id="sallary_range_currency_id_pln" include_blank="false" name="sallary_range[currency_id]" type="radio" value="PLN" /> ...

Ha ha, znalazłem,
Chyb zrypany jest helper form_options_helper.rb
jest tam taka cudna metoda

def option_value_selected?(value, selected) if selected.respond_to?(:include?) && !selected.is_a?(String) selected.include? value else value == selected end end
ta biedna metoda nie może sobie poradzić jeśłi value jest typu CompositePrimaryKeys::CompositeIds (1 element(s))

ja zmieniłem porównanie na

value.to_s == selected

to zaczeło działać :wink:

pozdro
krzysiek