I want to share a partial between 2 or more controllers.
I have a “location” partial that I want users to enter “Address, City,
State, Zip” information in however I have “Payees”, “Institution”, and
“Event” models that can have “location” information stored with them.
Since I don’t want to duplicate the partial across each controller, I’ve
placed the partial in a “shared” folder however I’m having problems
rendering it with the appropriate model object.
A sample of my renders look like this:
<%= render :partial => ‘shared/location’, :object => @payee %>
A sample of my partial looks like this:
<%= location.text_field :address, :size => 60 %>
Obviously rails is complaining that the object is not related to a form
since I’m not using “form_for” or “fields_for” (see below for error).
“undefined method `text_field’ for #Payee:0x4472530”
How can I make this happen while keeping it DRY?
On 2 Dec 2008, at 17:24, Corey M. wrote:
“undefined method `text_field’ for #Payee:0x4472530”
Could you just call fields_for and pass through the yielded object
instead of passing through @payee ?
Fred
Frederick C. wrote:
On 2 Dec 2008, at 17:24, Corey M. wrote:
“undefined method `text_field’ for #Payee:0x4472530”
Could you just call fields_for and pass through the yielded object
instead of passing through @payee ?
Fred
How would I pass through the yielded object? I can’t write “fields_for
:payee” since this partial is used by the other two models (events,
institutions) as well.
When trying the following . . .
<%= render :partial => ‘shared/location’, :object => @payee %>
<% fields_for :location do |l| %>
<%= l.text_field :address, :size => 60 %>
<% end %>
The rendered HTML is showing the field ids as such “location_address”,
when they need to ultimately be “payee_address”
I’m obviously missing something here.
Frederick C. wrote:
I was actually thinking of something along the lines for
<% fields_for @payee do |f| %>
<%= render :partial=> ‘shared/location’, :object => f %>
<% end >%
I follow you now. A much simpler way of doing it and it solved my
problem.
Thanks once again Fred
On 2 Dec 2008, at 18:35, Corey M. wrote:
Fred
<% fields_for :location do |l| %>
<%= l.text_field :address, :size => 60 %>
<% end %>
The rendered HTML is showing the field ids as such “location_address”,
when they need to ultimately be “payee_address”
I was actually thinking of something along the lines for
<% fields_for @payee do |f| %>
<%= render :partial=> ‘shared/location’, :object => f %>
<% end >%