Consider a team of players. I would like to make my _form not include the form header. This would allow me to have different fields available when depending on whether I am editing or creating a new player. It also allows me reuse that form as a partial when building a larger editor page that could say edit 2 players at one. players/_form <div> <%= f.label :name %> <%= f.text_field :name => </div> <div> <%= f.label :number %> <%= f.text_field :number => </div> players/new.html.erb <h1>Creating Player</h1> <%= form_for(@player) do |f| %> <%= render ''form'' %> <div> <%= f.label :team %> <%= f.text_field :team => </div> <%= f.submit %> <% end %> players/edit.html.erb <h1>Editing Player</h1> <%= form_for(@player) do |f| %> <%= render ''form'' %> <!-- can''t change teams once you have been created. <div> <%= f.label :team %> <%= f.text_field :team => </div> --> <%= f.submit %> <% end %> team/edit_roster.html.erb <h1>Editing Roster</h1> <%= form_for(@roster) do |f| %> <!-- edit the TwoPlayers object which contains two players --> <%= render ''players/form'', @roster.first_player %> <%= render ''players/form'', @roster.second_player %> <%= f.submit %> <% end %> I use this pattern all the time with MS-MVC/EF/C#. Is this bad practice in rails? The syntax I have given doesn''t quite work, so I guess if I go with this, I''ll have to change the new/edit/_form for each one I want to do this with. Even the generate _form won''t work, as I don''t have access to |f|, in my partial. What is the ''railsy'' way of accomplishing this? Thanks, ~S -- 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/-/EW4fx_nyvdEJ. 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.
Hey S, You can always pass your form variable |f| to the partial when you render it. i.e. <%= render partial => ''line_item'', :locals => {:new_f => f} %> - Ryan On Tuesday, June 19, 2012 1:29:06 PM UTC-10, sheamus wrote:> > Consider a team of players. > > I would like to make my _form not include the form header. This would > allow me to have different fields available when depending on whether I am > editing or creating a new player. It also allows me reuse that form as a > partial when building a larger editor page that could say edit 2 players at > one. > > players/_form > <div> > <%= f.label :name %> > <%= f.text_field :name => > </div> > <div> > <%= f.label :number %> > <%= f.text_field :number => > </div> > > players/new.html.erb > <h1>Creating Player</h1> > <%= form_for(@player) do |f| %> > <%= render ''form'' %> > <div> > <%= f.label :team %> > <%= f.text_field :team => > </div> > <%= f.submit %> > <% end %> > > players/edit.html.erb > <h1>Editing Player</h1> > <%= form_for(@player) do |f| %> > <%= render ''form'' %> > <!-- > can''t change teams once you have been created. > <div> > <%= f.label :team %> > <%= f.text_field :team => > </div> > --> > <%= f.submit %> > <% end %> > > team/edit_roster.html.erb > <h1>Editing Roster</h1> > <%= form_for(@roster) do |f| %> > <!-- edit the TwoPlayers object which contains two players --> > <%= render ''players/form'', @roster.first_player %> > <%= render ''players/form'', @roster.second_player %> > <%= f.submit %> > <% end %> > > I use this pattern all the time with MS-MVC/EF/C#. Is this bad practice > in rails? The syntax I have given doesn''t quite work, so I guess if I go > with this, I''ll have to change the new/edit/_form for each one I want to do > this with. Even the generate _form won''t work, as I don''t have access to > |f|, in my partial. > > What is the ''railsy'' way of accomplishing this? > > Thanks, > ~S > >-- 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/-/ZPeZhzQpMBgJ. 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.
Thanks, yeah I suspected there would be a way to pass the form variable in. If no one finds my tactic offensive, I guess I''ll go the route. ~S On Tuesday, 19 June 2012 17:39:19 UTC-6, Ryan Buckley wrote:> > Hey S, > > You can always pass your form variable |f| to the partial when you render > it. > > i.e. > > <%= render partial => ''line_item'', :locals => {:new_f => f} %> > > - Ryan > > On Tuesday, June 19, 2012 1:29:06 PM UTC-10, sheamus wrote: >> >> Consider a team of players. >> >> I would like to make my _form not include the form header. This would >> allow me to have different fields available when depending on whether I am >> editing or creating a new player. It also allows me reuse that form as a >> partial when building a larger editor page that could say edit 2 players at >> one. >> >> players/_form >> <div> >> <%= f.label :name %> >> <%= f.text_field :name => >> </div> >> <div> >> <%= f.label :number %> >> <%= f.text_field :number => >> </div> >> >> players/new.html.erb >> <h1>Creating Player</h1> >> <%= form_for(@player) do |f| %> >> <%= render ''form'' %> >> <div> >> <%= f.label :team %> >> <%= f.text_field :team => >> </div> >> <%= f.submit %> >> <% end %> >> >> players/edit.html.erb >> <h1>Editing Player</h1> >> <%= form_for(@player) do |f| %> >> <%= render ''form'' %> >> <!-- >> can''t change teams once you have been created. >> <div> >> <%= f.label :team %> >> <%= f.text_field :team => >> </div> >> --> >> <%= f.submit %> >> <% end %> >> >> team/edit_roster.html.erb >> <h1>Editing Roster</h1> >> <%= form_for(@roster) do |f| %> >> <!-- edit the TwoPlayers object which contains two players --> >> <%= render ''players/form'', @roster.first_player %> >> <%= render ''players/form'', @roster.second_player %> >> <%= f.submit %> >> <% end %> >> >> I use this pattern all the time with MS-MVC/EF/C#. Is this bad practice >> in rails? The syntax I have given doesn''t quite work, so I guess if I go >> with this, I''ll have to change the new/edit/_form for each one I want to do >> this with. Even the generate _form won''t work, as I don''t have access to >> |f|, in my partial. >> >> What is the ''railsy'' way of accomplishing this? >> >> Thanks, >> ~S >> >>-- 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/-/Dp8JiQMD24EJ. 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.
Thanks. Yeah I figured I could likely pass in the form variable somehow. I guess if no one finds my tactic offensive, I''ll go the route. ~S -- 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/-/bUyzGkTpV9MJ. 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.
Is there a way to change what gets generated by default? -- 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/-/aoVIX75s29gJ. 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.