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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.