Haml + formtastic - error przy tworzeniu selecta

Ostatnimi czasy zainteresowałem się gemem formtastic.
Dodałem go do swojej aplikacji, i w sumie jest super, gdyby nie to ,że nie potrafię stworzyć selecta.
W modelu PublicMessage mam pole publication_type (integer).
w widoku mam:

  	=f.input :publication_type, :collection => [["foo",0],["bar",1] ],:as => :select #albo as :radio, efekt ten sam

[quote]Showing app/views/public_message/create.haml where line #10 raised:
wrong number of arguments (0 for 1)[/quote]
linia 10, to właśnie ta linia zaprezentowana. gdy usunę :as=>:select, wyświetla się poprawnie… ale jako zwykły input text.
Byłbym bardzo wdzięczny za pomoc.

Mógłbyś wkleić trochę więcej logów? Dodanie lub usunięcie elementu “:as => :select” nie wpływa na ilość argumentów przekazywanych do metody. Problem pewnie leży gdzieś niżej. Której wersji formtastica używasz?

http://pastie.org/722454 - kod widoku, błąd i backtrace.
formtastic 0.9.4
haml 2.2.15
reszta jak w podpisie

ja bym zamienil miejscami i zobaczyl, chociaz to nie powinno byc to, ale na oko wyglada ok, czyli cos takiego:

=f.input :publication_type, :as => :select, :collection => [["foo",0],["bar",1] ]

No ale jak mówiłem to nie powinno mieć znaczenia, ale zawsze w sumie typ podawało się na początku, jako 2-gi parametr, więc może to to?

@gotar, sprawdzałem, to nie to.

No to bardzo dziwna sprawa bo to musi działać, nie ma tu żadnej magi. Możesz na chama spróbować, czyli

=f.input :publication_type, :collection => [["foo",0],["bar",1]], :input_html => { :type => "select"  }

Tylko nie wiem czy to zadziała, akurat dla tego parametru ;/ nic innego mi do głowy nie przychodzi, bo błędu nie widzę żadnego.

=f.input :publication_type, :collection => [["foo",0],["bar",1]], :input_html => { :type => "select"  }

to działa…ale nie tak jak trzeba: tworzy zwykłego input text.
Czyli co, wygląda na buga?

no jak dla mnie tak, bo używasz tu zupełnie podstawowej rzeczy, która powinna działać bez problemu.

Możesz jeszcze spróbować zastąpić tą kolekcję [] jakaś juz przygotowaną zmienna @

Najlepiej daj sobie spokoj z semantic i zrob to po staremu

Najlepiej daj sobie spokoj z semantic i zrob to po staremu

o widzisz… nie pomyślałem tak naprawdę o tym, i wygląda na to, że błąd przenosi się ciut wyżej…
kod w widoku:

=select @public_message,:publication_type,['a','b']

wypluwa mi:

<select id="__PublicMessage:0x257626c_publication_type" name="#<PublicMessage:0x257626c>[publication_type]"><option value="a">a</option> <option value="b">b</option></select>
ale =select :public_message,:publication_type,['a','b']
znany już [code]ArgumentError in Public_message#create

Showing app/views/public_message/create.haml where line #6 raised:
wrong number of arguments (0 for 1)

Extracted source (around line #6):
3: =f.input :title
4: %br
5: =#f.input :publication_type, :as => :select, :collection => [[“foo”,0],[“bar”,1] ]
6: =select :public_message,:publication_type,[‘a’,‘b’]
7: =f.input :body
8: =f.buttons
9:[/code]
wygląda więc, że to nie kwestia formstatica, bo on chyba jednak próbuje wykonać poprawnego selecta, ale defaultowy railsowy helper mu na to nie pozwala.
btw:

@public_message = PublicMessage.new

tak, żeby nie było niejasności :wink: