Witam. Dopiero co zaczynam swoją przygodę z RoR dlatego pytanie bedzie pewnie banalne. Tworze aplikację w RoR 2.1.2 podpiętą pod bazę Oracle 10g XE. Dostęp i konfiguracja w pliku yml są ok gdyż migracja przebiegła ok. Posiadam tam tabelę cities o polach id, name i zip. Kontroler napisany na podstawie tutoriala wygląda następująco:
class CityController < ApplicationController
def list
@cities = City.find(:all)
end
def show
@city = City.find(params[:id])
end
def new
@city = City.new
end
def create
@city = City.new(params[:city])
if @city.save
redirect_to :action =>'list'
else
redirect_to :action => 'write_error'
end
end
def edit
@city = City.find(params[:id])
end
def update
@city = City.find(params[:id])
if @city.update_attributes(params[:city])
redirect_to :action => 'show', :id => @city
end
end
def delete
City.find(params[:id]).destroy
redirect_to :action => 'list'
end
def write_error
end
end
a plik widoku dla metody new:
[code]
Dodaj miasto
<% form_tag :action => ‘create’ do %>
Miasto:
<%= text_field 'city', 'name' %>
Kod pocztowy:
<%= text_field 'city', 'zip' %>
<%= submit_tag "Create" %>
<% end %>
<%= link_to 'Wstecz...', {:action => 'list'} %>[/code]
Po wprowadzeniu danych i zatwierdzeniu w bazie nie pojawia sie nic nowego :( prosze o pomoc i z gory dziekuje :)
if @message.save
flash[:notice] = @message.errors.inspect
redirect_to "http://localhost:3000/home/index/"
else
render :action => 'new'
end
end
end[/code]
i oczywiście mam tabele messages, a w niej pole ‘content’ typu text. gdy zapisuje jakis tekst do bazy, pojawia mi się nowy rekord, ale w polu ‘content’ nie ma tego tekstu. Czy ktoś wie o co chodzi?
sebcioz, to co mi napisałeś nie działa u mnie… jak zmieniłem tak jak napisałeś to w ogole już nawet rekordu nie tworzy…
rav, a czy konieczne są powiązania w modelach zeby działało te zapisywanie wiadomości do bazy danych?
Ponawiam swoją prośbę. Próbowałem różnych rzeczy ale nadal nie chce mi to działać. Pojawia się nowy rekord i jego id, ale wartości content nie zapisuje do bazy. Mam jeszcze model ‘message.rb’ w którym nic nie ma.
Kontroler: [code]class MessagesController < ApplicationController
Nie mam ochoty odrabiać za Ciebie pracy domowej, więc tak na szybko zamień to na <%= submit_tag “Wyślij” %>. Zadziała. A potem doczytaj dlatego link (a href) nie wysyła zawartości formularza i dlaczego robi to submit button.