Walidacja

Przychodze do was z jeszcze jednym malym problemem…

Proboje zwalidowac formularz ajaxowy(o ile ma to jakies znaczenie?). Problem w tym, ze sama walidacja dziala i post nie idzie, ale za to ni cholery nie chca sie wyswietlic bledy.

[code]#model
class Book < ActiveRecord::Base

validates_presence_of :text

#widok
<% form_tag ({:controller => ‘books’, :action => ‘create’, {:id => “new_comment”}) do %>
Treść :

<%= text_area :book, :text, :class => “new-book-area” %>
<%= error_message_on @book, :text %>
<% end %>
<%= submit_tag ‘Dodaj ksiazke’ %>

[/code] Czy to ma zwiazek, z tym formularz obsluguje ajaxem? Bo przeciez walidacja dziala, ksiazka sie nie dodaje, ale reakcji na ekranie zero :<

A jak wygląda kod, który obsługuje ajaksowe zapytanie o dodanie tej książki. Być może jest tak, że on nie odświeża tego fragmentu, gdzie ma być wyświetlony komunikat. I chyba tak rzeczywiście tak jest, bo nie widać tu żadnego IDika, po którym by się do tego dobierał.

Hmm, nawet jesli dodac ID i je refreshnac to i tak nic sie nie dzieje… Moze jakies zle zalozenie koncepcyjne mam?

Co powinny pokazywac logi, jezeli formularz nie przeszedl walidacji? Bo u mnie po prostu dalej proboje wykonac create.js, tyle ze dostaje pusty obiekt.

Wiem, że w Railsach jest dużo magii, ale chyba nie aż tyle ile oczekujesz. Po odświeżeniu strony (pobraniu jej GET-em) nie wyświetlą Ci się błędy walidacji (prawdopodobnie nie robisz żadnej walidacji w akcji edit kontrolera). Jeśli chcesz wyświetlić błędy w ten sposób, to wypadałoby je wysłać w jakiś sposób do przeglądarki i wyświetlić za pomocą JavaScriptu. Jak to zrobić? Wszystko zależy od tego czego używasz do JavaScriptu. Raczej proponowałbym zacząć od “Agile Web Development with Rails”.

Ten temat pasuje chyba najlepiej…

Czy wiecie jak stworzyć validates_presence_of aby sprawdzał XORem czy jakieś atrybuty sa ustawione?
Konkretnie chodzi mi o to, ze mam dwa checkboxy i chcę mieć pewność, że użytkownik zaznaczy tylko jeden z nich.

a to nie powinno się takie rzeczy załatwiać radio buttonem?

:slight_smile: +1

True… :stuck_out_tongue:
Korzystam jednak z Hobo, który mi generuje domyślnie checkboxy. Czuję się mało pewnie żeby przerabiać to na radioboxy, ale w sumie warto spróbować, może faktycznie będzie to prostsze…