Undefined method `scaffolding' for

Witam.

posiadam następujący kontroler

class BlogController < ApplicationController
scaffolding :post
end

po wejsci na strone: http://localhost:3000/blog widze nastepujacy komunikat:

NoMethodError in BlogController#index

undefined method `scaffolding’ for BlogController:Class

RAILS_ROOT: D:/Documents and Settings/Administrator/My Documents/rails/test2

proszę o pomoc i wyrozumiałość :wink:

scaffolding???

http://wiki.rubyonrails.org/rails/pages/Scaffold

Powinno raczej byc:

class BlogController < ApplicationController
scaffold :post
end

tak tez nie działa :
class BlogController < ApplicationController
scaffold :post
end

błąd:

NoMethodError in BlogController#index

undefined method `scaffold’ for BlogController:Class

class BlogController < ApplicationController::Base scaffold :post end
Dziedziczenie ma być z ApplicationController::Base, przepisuj z uwagą.

http://wiki.rubyonrails.org/rails/pages/Scaffold

class EntryController < ApplicationController scaffold :post end

Ajć, mój błąd, przyznaję. Dziedziczenie jest ok, ApplicationController dziedziczy przecież po ActionController::Base.

Wszystko powinno być ok. Z jakiej wersji rails korzystasz?

Ruby version 1.8.6 (i386-mswin32)
RubyGems version 0.9.5
Rails version 2.0.1
Active Record version 2.0.1
Action Pack version 2.0.1
Active Resource version 2.0.1
Action Mailer version 2.0.1
Active Support version 2.0.1

A nie mówiłem, że będą problemy jak się pojawi 2.0.1 :slight_smile:
Dynamiczny Scaffolding został usunięty z rails 2.0 :confused:
Pozostaje script/generate scaffold
Ewentualnie plugin ActiveScaffold, ale prawdopodobnie nie działa jeszcze z Rails 2.0

W kwestii doinformowania - w piątek pojawiła się nowa wersja Rails - 2.0, która zawiera wiele zmian w stosunku do wersji poprzednich. Jeśli stanowi to dla kogoś problem (tzn. nie chce mu się szukać materiałów dot. rails 2.0), to najprościej będzie ściągnąć ostatnią wersję Rails 1.2:
gem install rails -v 1.2

A widzisz, ale numer. Apohllo, a czy nie zostanie w ten sposób zainstalowana wersja 1.2.6? Większość książek opiera się na wersji 1.2.3. Zresztą, każdy kto czyta książkę powinien zainstalować i używać tą wersję rails, jaka została użyta w książce.

Uhm, co im ten dynamiczny scaffold przeszkadzał?

Motywacją była chyba chęć odchudzenia Railsów i nastawienie na RESTful. To samo stało się z paginacją - została ona przeniesiona do pluginu (choć akurat w tym wypadku uważam, że zrobili słusznie, bo ten element Railsów był zdecydowanie niedopracowany).

Np. teraz w wygenerowanym scaffoldzie w metodzie index jest po prostu Model.find(:all) :slight_smile:

A swoją drogą plugin, o którym przeczytałem niedawno na tym forum, czyli ActiveScaffold wymiata - ajaxowa edycja + uwzględnianie asocjacji powodują, że kilka linijek kodu zamienia się w potężną machinę pozwalającą na bardzo wygodne edytowanie i wyszukiwanie. Nie testowałem go jeszcze bezpośrednio, ale demo, które widziałem na stronie wygląda niezwykle obiecująco.

Dynamiczne scaffoldy został usunięty z Rails 2.0, jednak team RoR udostępnił w swoim repozytorium odpowiedni plugin dający taką funkcjonalność jak w Rails 1.2 scaffolding

Wystarczy wykonać polecenie

script/plugin install

i powinno działać.

script/plugin install scaffolding

Oczywiście powinno być tak jak napisał hosiawak, w pośpiechu uciąłem nazwę pluginu.

dociągnąłem plugina , i teraz ma taki blad ;/ :

[code] NoMethodError in PostController#index

undefined method `paginate’ for #PostController:0x33cf73c

RAILS_ROOT: D:/Documents and Settings/Administrator/My Documents/rails/test3[/code]

Jak wspomiał apohllo opcja podziału zawartości na strony (pagination) również została usunięta z nowych wersji Rails.

Jak widzisz pomiędzy Rails 1.2 a 2.0 jest sporo różnic więc proponuję przynajmniej na początku nauki korzystanie z wersji 1.2

Po opanowaniu podstaw będziesz mógł poczytać o zmianach jakie zaszły w Rails 2.0 i przenieść się na aktualną wersję.

ok tak tez zrobiłem :slight_smile: i jak narazie działa .

Dla wszystkich, którzy jednak chcieliby korzystać z Rails 2.0. i jednocześnie nie chcą przebudowywać ‘starych’ aplikacji pod kątem ‘starego’ paginate, można sobie zainstalować jego plugin -

ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/classic_pagination/

dla mnie to wygodne rozwiązanie bo korzystam z ajax_scaffold bez konieczności przebudowywania jego stronicowania pod will_paginate, czekając może na nowy ajax_scaffold, musimy jeszcze zamienić ‘end_form_tag’ => ‘form_for’ i ‘@flash’ => 'flash[] ', w tym ostatnim przypadku pozbędziemy się tylko errora, ale chyba i tak każdy zmienia _model pod siebie, więc jest spoko i można z obecnego ajax_scaffold korzystać wraz Rails2.0, oczywiście ajax_scaffold nie będzie nic generował wraz z nowym railsem, trzeba sobie na ten czas zmienić go na wersje 1.2 :slight_smile: