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.
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…
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
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
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))