Mam pytanie, czy w Active Scaffold jest mozliwosc dodanie wieciej niz 1 pola update?.
Chodzi mi o to ze przy kazdym wierszu ( ktory ma 2 kolumny), pierwszy update szedl na 1 kolumnę natomiast 2 na 2 kolumne?
Błąd bierze się z nazwy konrtroler - zamiast “Home_s_Controller” masz “HomeController”. Poza tym dodaj znacznik “code=ruby” (w nawiasach kwadratowych), żeby kod się formatował. Tak nie da się tego czytać.
zdaje sobie sprawe ze Nazwa kontrolera tez miala duzy wplyw na blad ,jednak … nie wiem gdzie to zmienic …skopiowalem homecontroller i zminilem nazwe klasy na homescontroller… i rowniez nie dziala
kod zwracany przy Update
LoadError in HomesController#update
Expected /home/mpindela/Desktop/rails/ww/app/controllers/homes_controller.rb to define HomesController
RAILS_ROOT: /home/mpindela/Desktop/rails/ww
Application Trace | Framework Trace | Full Trace
Request
Parameters:
{“commit”=>“Save changes”,
“_method”=>“put”,
“authenticity_token”=>“kO6l6v3p4YheE06LvI2YS5QsN5x+c45EYhjh03crl3o=”,
“id”=>“5”,
“home”=>{“comm”=>""}}
Show session dump
Zmieniłeś nazwę pliku, a nie zmieniłeś jego zawartości. Plik app/controllers/homes_controller.rb powinien definiować klasę: HomesController. Czyli w tym pliku powinieneś mieć:
class HomesController < ApplicationController
Minister ds. elektro przypomina. Sformatowanie kodu ze znacznikiem code=ruby (w nawiasach kwadratowych) zwiększa szansę na otrzymanie odpowiedzi na Twoje pytanie.
Dzieki ! błedy juz nie wylatuja ale jednak … keidy klimkam update w komntarzach …nic sie nie dzieje :
Logi Mongrela:
SQL (0.1ms) SET NAMES ‘utf8’
SQL (0.1ms) SET SQL_AUTO_IS_NULL=0
Home Columns (14.8ms) SHOW FIELDS FROM homes
Processing HomesController#update (for 127.0.0.1 at 2010-02-02 15:54:04) [PUT]
Parameters: {“commit”=>“update”, “authenticity_token”=>“kO6l6v3p4YheE06LvI2YS5QsN5x+c45EYhjh03crl3o=”, “id”=>“62”, “home”=>{“comm”=>“komentarz”}}
Home Load (0.1ms) SELECT * FROM homes WHERE (homes.id = 62)
SQL (0.1ms) BEGIN
SQL (0.1ms) COMMIT
Redirected to http://localhost:3004/homes/62
Completed in 11ms (DB: 15) | 302 Found [http://localhost/homes/62]
SQL (0.1ms) SET NAMES ‘utf8’
SQL (0.3ms) SET SQL_AUTO_IS_NULL=0
Home Columns (1.2ms) SHOW FIELDS FROM homes
Processing HomesController#show (for 127.0.0.1 at 2010-02-02 15:54:05) [GET]
Parameters: {“id”=>“62”}
Home Load (0.2ms) SELECT * FROM homes WHERE (homes.id = 62)
Rendering template within layouts/homes
Rendering show
Rendered _show_columns (14.2ms)
Rendered _show (25.4ms)
Completed in 89ms (View: 82, DB: 2) | 200 OK [http://localhost/homes/62]
fragment kontrolera nie active_scaffold
def comm @list = Home.find(params[:id])
end
def update @list = Home.find(params[:id])
respond_to do |format|
if @list.update_attribute(:comm,params[:comm])
flash[:notice] = ‘List was successfully updated.’
format.html { redirect_to(@list) }
format.xml { head :ok }
else
format.html { render :action => “update” }
format.xml { render :xml => @list.errors, :status => :unprocessable_entity }
end
end
end
Dobra domyslilem sie ze nie potrzebnie tworze update …
jednak w momencie update w komentarzach wyskakuje mi :
NoMethodError in HomesController#update
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
RAILS_ROOT: /home/mpindela/Desktop/rails/ww
Application Trace | Framework Trace | Full Trace
Request
Parameters:
{“commit”=>“update”,
“_method”=>“put”,
“authenticity_token”=>“kO6l6v3p4YheE06LvI2YS5QsN5x+c45EYhjh03crl3o=”,
“id”=>“30”,
“home”=>{“comm”=>“aaa”}}
Show session dump
Bez przestudiowania przynajmniej podstawowego przewodnika po Rails nie ma sensu brać się za ActiveScaffold. W komunikatach zawsze jest dosyć dokładna informacja o tym co robisz źle. Ale forum to nie jest “live-tutorial”, tylko miejsce do zgłaszania konkretnych problemów.