Witam ponownie
Mam taki mały problemi z przekazywaniem parametrów z checkboxa.
Używam sobie takiej starej wersji ext_scaffolda no i on mi ładnie generuje checkboxa jako prawdziwego checkboxa oraz ukryty parametr (żaby nie było problemu z niezaznaczonym checkboxem).
var post_form_items = [
{ fieldLabel: 'Title', xtype: 'textfield', name: 'post[title]'},
{ fieldLabel: 'Body', xtype: 'textarea', name: 'post[body]'},
{ fieldLabel: 'Published', xtype: 'checkbox', inputValue: '1', width: 18, height: 21, name: 'post[published]'},{ xtype: 'hidden', value: '0', name: 'post[published]' }
];
no i jest niestety tak że do controlera zawsze przychodzi wartość post[published] zerowa, niezależnie od tego czy checkbox jest zaznaczony czy też nie.
natomiast jak podglądam reqest ajaxowy to tam jest ładnie wszystko wysyłane.
_method PUT
authenticity_token jy2Tyu0QIMydD+RSTEqIo7CR11eY9ZjqCcKlt4e5Bxo=
post[title] dasda
post[body] bla bla bla 6666
post[published] 1
post[published] 0
Masz racje, w ajaksie jest wszystko ładnie wysyłane, ale post[published] jest wysyłane dwa razy. Za pierwszym razem ma wartość 1 (to zaznaczyłeś), a za drugime razem 0, i potem w kontrolerze masz dostęp do tej ostatnie własności. Czyli błąd jest w tym, że dajesz tego hidden o id published, który Ci nadpisuje wynik z checkboksa
Rzeczywiście, masz racje, moja nie wiedza. Niestety nie mam na to żadnego pomysłu, czego się tak dzieje i jak to naprawić. W świetle linku który przedstawiłeś, powinno być git.
class Car < ActiveRecord::Base
has_and_belongs_to_many :colors
end
class Color < ActiveRecord::Base
has_and_belongs_to_many :cars
end
a masz takie coś w kontrolerze??
po stronie samochodu:
@car = Car.new(params[:car])
@car.color_ids = params[:car][:color_ids] ||= []
po stronie kolorow bedzie dokladnie tak samo, tylko ze inaczej ;D
@color = Color.new(params[:color])
@color.car_ids = params[:color][:car_ids] ||= []
oczywiście to jest dla akcji create,
dla update’a zamiast Samochod.new musisz dać find
class Car < ActiveRecord::Base
has_and_belongs_to_many :colors
end
class Color < ActiveRecord::Base
has_and_belongs_to_many :cars
end
a masz takie coś w kontrolerze??
po stronie samochodu:
@car = Car.new(params[:car])
@car.color_ids = params[:car][:color_ids] ||= []
po stronie kolorow bedzie dokladnie tak samo, tylko ze inaczej ;D
@color = Color.new(params[:color])
@color.car_ids = params[:color][:car_ids] ||= []
oczywiście to jest dla akcji create,
dla update’a zamiast Samochod.new musisz dać find
mam nadzieje, że to pomoze[/quote]
a czy nie pomyliłeś postów
_method PUT
authenticity_token jy2Tyu0QIMydD+RSTEqIo7CR11eY9ZjqCcKlt4e5Bxo=
post[title] dasda
post[body] bla bla bla 6666
post[published] 0
post[published] 1
[quote=fastred]Nie znam tego pluginu, ale spróbuj jeszcze parametry podać tak aby najpierw w kodzie pojawił się input ukryty a później checkbox, w stylu:
_method PUT
authenticity_token jy2Tyu0QIMydD+RSTEqIo7CR11eY9ZjqCcKlt4e5Bxo=
post[title] dasda
post[body] bla bla bla 6666
post[published] 0
post[published] 1
[/quote]
Hej,
Witam po małej przerwie, tak działa znakomicie, tyle że ext jak mu tak podam to zawsze renderuje puste pole
Tak więc i tak źle i tak niedobrze.
Exta raczej nie pozmieniam, niemniej mógłbym railsy, tak żeby niezależnie od kolejności dobrze działały.
Tylko debuguje i debuguje, i nie mogę znaleść kodu gdzie jest odczytywana z requesta tablica parametrów ??
Ktoś pomoże?
Pozdrawiam
Krzysiek