I use Ajax more and more and I don''t see how a normal Scaffold for Rails 2+ is useful for that – with the ''respond_to do |format|''. Or am I missing something? So how do I make a clean scaffold so I get: def index @documents = Document.find(:all) end def show @document = Document.find(params[:id]) end def new @document = Document.new end def edit @document = Document.find(params[:id]) end def create @document = Document.new(params[:document]) end def update @document = Document.find(params[:id]) end def destroy @document = Document.find(params[:id]) @document.destroy end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
To clean it up even more you could do: before_filter :find_document, :except => [:index, :new, :create] And then at the bottom before the end of the class: private def find_document @document = Document.find(params[:id]) end Bonus points for rescuing the ActiveRecord::RecordNotFound when somebody passes in an ID that doesn''t exist. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ryan Bigg wrote:> To clean it up even more you could do: > > before_filter :find_document, :except => [:index, :new, :create] > > And then at the bottom before the end of the class: > > private > > def find_document > @document = Document.find(params[:id]) > end > > Bonus points for rescuing the ActiveRecord::RecordNotFound when somebody > passes in an ID that doesn''t exist.Great :-) But what about a scaffold that doesn''t add all that extra? Is there a way to do that? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Write your own? On Jun 13, 2:15 am, Pål Bergström <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Ryan Bigg wrote: > > To clean it up even more you could do: > > > before_filter :find_document, :except => [:index, :new, :create] > > > And then at the bottom before the end of the class: > > > private > > > def find_document > > @document = Document.find(params[:id]) > > end > > > Bonus points for rescuing the ActiveRecord::RecordNotFound when somebody > > passes in an ID that doesn''t exist. > > Great :-) > > But what about a scaffold that doesn''t add all that extra? Is there a > way to do that? > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Bobnation wrote:> Write your own? > > On Jun 13, 2:15�am, P�l Bergstr�m <rails-mailing-l...@andreas-s.net>Not sure my knowledge in Rails is up to that yet, but I''m getting there :-) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Maybe a good route would be to just generate the scaffold using script/ generate scaffold ScaffoldNameHere index show etc. which will give you an outline to toy around with. I guess the best advice I can probably hand out is go ahead and destroy things! :) On Jun 13, 7:36 am, Pål Bergström <rails-mailing-l...@andreas-s.net> wrote:> Bobnation wrote: > > Write your own? > > > On Jun 13, 2:15�am, P�l Bergstr�m <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > > Not sure my knowledge in Rails is up to that yet, but I''m getting there > :-) > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Bobnation wrote:> Maybe a good route would be to just generate the scaffold using script/ > generate scaffold ScaffoldNameHere index show etc. which will give you > an outline to toy around with. > > I guess the best advice I can probably hand out is go ahead and > destroy things! :) > > On Jun 13, 7:36 am, Pål Bergström <rails-mailing-l...@andreas-s.net>That''s a good idea. I''ll try it. Thanks. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
you're missing quite a bit of action here in your desire to DRY everything up, like saving the object in your create method and updating it in your update one. you'd be much better served just learning and using the Rails defaults for a while before adapting and "cleaning" them up. you'll probably even find out that they're pretty fine the way they are. RSL On Fri, Jun 13, 2008 at 3:01 AM, Pål Bergström < rails-mailing-list@andreas-s.net> wrote:> > I use Ajax more and more and I don't see how a normal Scaffold for Rails > 2+ is useful for that – with the 'respond_to do |format|'. Or am I > missing something? > > So how do I make a clean scaffold so I get: > > def index > @documents = Document.find(:all) > end > > def show > @document = Document.find(params[:id]) > end > > def new > @document = Document.new > end > > def edit > @document = Document.find(params[:id]) > end > > def create > @document = Document.new(params[:document]) > end > > def update > @document = Document.find(params[:id]) > end > > def destroy > @document = Document.find(params[:id]) > @document.destroy > end > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
RSL ___ wrote:> you''re missing quite a bit of action here in your desire to DRY > everything > up, like saving the object in your create method and updating it in your > update one. you''d be much better served just learning and using the > Rails > defaults for a while before adapting and "cleaning" them up. you''ll > probably > even find out that they''re pretty fine the way they are. > > RSL > > On Fri, Jun 13, 2008 at 3:01 AM, Pål Bergström <But from what I can understand it''s seldom that you will have any use of the normal 2.0+ scaffold when doing things the AJAX-way, or? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
There's nothing wrong with writing yr own scaffolding. Not at all. But from your own code I surmise that you don't really understand all the things going on by default in Rails. That sounds rude but I'm honestly looking out for yr experience as a Rails dev. I too heard the siren call of "i can make this DRY" and "i can write this better than Rails" but i found that until I really groked the Rails way I often ended up making _more_ work for myself trying to be clever. I really do suggest to all newcomers that they resist the urge to rethink and correct what they feel is wrong with Rails and instead dine from the rich buffett DHH and crew have setup for us already. There's nothing wrong with customization and adding on and even DRY [though i wish that term were stricken from tutorials and guides to new users sometimes] but it's always best to know how Rails does things first before second guessing it. Case in point: def create @document = Document.new(params[:document]) end that method doesn't actually save your document to the db. now look at the rails scaffolding for create and you can see that those lines you viewed as bloat and undry are all actually needed. there's lines to initialize the object and lines to save it and error handling as well. the scaffold is anything but bloated. you'll definitely be adding on to it later but you should resist the urge to DRY up Rails default code. RSL On Tue, Jun 17, 2008 at 10:05 AM, Pål Bergström < rails-mailing-list@andreas-s.net> wrote:> > RSL ___ wrote: > > you're missing quite a bit of action here in your desire to DRY > > everything > > up, like saving the object in your create method and updating it in your > > update one. you'd be much better served just learning and using the > > Rails > > defaults for a while before adapting and "cleaning" them up. you'll > > probably > > even find out that they're pretty fine the way they are. > > > > RSL > > > > On Fri, Jun 13, 2008 at 3:01 AM, Pål Bergström < > > But from what I can understand it's seldom that you will have any use of > the normal 2.0+ scaffold when doing things the AJAX-way, or? > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
RSL ___ wrote:> There''s nothing wrong with writing yr own scaffolding. Not at all. But > from > your own code I surmise that you don''t really understand all the things > going on by default in Rails. That sounds rude but I''m honestly looking > out > for yr experience as a Rails dev.That''s a good observation and completely true. That''s why I asked here. Why use respond_to do |format| format.html # new.html.erb format.xml end for situations where I use AJAX and have to add render :update do |page| to each action anyway? This is what I''ve been trying to understand. I''m just trying to learn the best way. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
just remember the scaffolding isn't meant as an end point but a beginning. you can just added format.js to the respond to block and delete the format.xml line if you need. if you feel the need to make a new scaffold, you can easily base it off the rails scaffold simply changing a few lines here and there. btw if you add the format.js then your ajax requests will look for action_name.js.rjs where you can use your rjs. i prefer that personally to using inline rjs but either way will work. RSL On Tue, Jun 17, 2008 at 3:08 PM, Pål Bergström < rails-mailing-list@andreas-s.net> wrote:> > RSL ___ wrote: > > There's nothing wrong with writing yr own scaffolding. Not at all. But > > from > > your own code I surmise that you don't really understand all the things > > going on by default in Rails. That sounds rude but I'm honestly looking > > out > > for yr experience as a Rails dev. > > That's a good observation and completely true. That's why I asked here. > > Why use > > respond_to do |format| > format.html # new.html.erb > format.xml > end > > for situations where I use AJAX and have to add render :update do |page| > to each action anyway? This is what I've been trying to understand. I'm > just trying to learn the best way. > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---