just-a-noob
2011-Jul-04 06:48 UTC
multiple input record, single model (without nested model)
hello everyone, I''m new to rails i have some question thats been quite a headache to me, so here it is: for example i have this controller & view controller class OrdersController < ApplicationController def new @Order = Order.new end def create @Order = Order.new(params[:order]) if @Order.save flash[:notice] = "Successfully created order." redirect_to @Order else render :action => ''new'' end end View <% title "Menu Order" %> <%= form_for @Order do |f| %> <%= f.error_messages %> <div id="form-order"> <p> <%= f.label :name%><br /> <%= f.text_field :name, %> </p> <p> <%= f.label :menu_order %><br /> <%= f.text_field :menu_order %> </p> </div> <%= f.submit %> my question is : before displaying the form above, I want to have a text_field_tag that specify how many forms (roughly said, duplicate the form div) I want to generate based on count, and then insert the data to the database simultaneously, This is similar to ryan bates railscasts but they don''t meet my requirement, i want to use single model, not nested. the idea is to speed things up, so that the user don''t have to input the data only one at a time, but multiple record at single submit how do i do that? Any suggestions and solutions will be much appreciated thanks before :) -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/aA4013ayyooJ. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Walter Lee Davis
2011-Jul-04 16:39 UTC
Re: multiple input record, single model (without nested model)
On Jul 4, 2011, at 2:48 AM, just-a-noob wrote:> hello everyone, I''m new to rails > i have some question thats been quite a headache to me, so here it is: > for example i have this controller & view > controller > class OrdersController < ApplicationController > > > def new > @Order = Order.new > end > > def create > @Order = Order.new(params[:order]) > if @Order.save > flash[:notice] = "Successfully created order." > redirect_to @Order > else > render :action => ''new'' > end > endRails (and Ruby) expect instance variables to begin with a lower-case letter. This may be working for you anyway, but I thought I''d point out that @Order and @order **mean** fundamentally different things.> > View > > <% title "Menu Order" %> > <%= form_for @Order do |f| %> > <%= f.error_messages %> > > <div id="form-order"> > <p> > <%= f.label :name%><br /> > <%= f.text_field :name, %> > </p> > <p> > <%= f.label :menu_order %><br /> > <%= f.text_field :menu_order %> > </p> > </div> > <%= f.submit %> > > my question is : > before displaying the form above, I want to have a text_field_tag > that specify how many forms (roughly said, duplicate the form div) I > want to generate based on count, and then insert the data to the > database simultaneously, > This is similar to ryan bates railscasts but they don''t meet my > requirement, i want to use single model, not nested. > the idea is to speed things up, so that the user don''t have to input > the data only one at a time, but multiple record at single submit > how do i do that? > Any suggestions and solutions will be much appreciated > thanks before :) >You''re going to need to shift your new and create methods around to create and expect an array of orders rather than a single order. This may be very difficult, since it is essentially swimming upstream against Rails'' conventions. You might get a lot more mileage out of creating a new wrapper model, like Cart, and having it accept_nested_attributes_for :orders. You can follow the Railscast that way, which works most excellently. (There are a couple of books when you build it in Rails 3, mostly to do with the JavaScript stuff because you''ll get double-escaped output if you follow it precisely. Remember that h is implicit in erb templates now, and you have to mark the stuff you don''t want escaped with .html_safe.) Walter> > -- > You received this message because you are subscribed to the Google > Groups "Ruby on Rails: Talk" group. > To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/aA4013ayyooJ > . > To post to this group, send email to rubyonrails- > talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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 > .-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.