Ruby on Rails Tuesday, March 1, 2011

Frederick Cheung wrote in post #984616:
> That sounds like you've got an unsaved metered_service somewhere (eg
> by doing premise.metered_services.build)
> Fred

Yep, that's true. I based my code on the canonical blog posts /
comments example, so in views/premises/edit.html.erb, I wrote:

<%= form_for([@premise,
@premise.metered_services.build(:account_identifier => "gas")]) do |f|
%>
<%= f.submit "add gas account" %>
<% end %>

... and it clearly calls build() whenever it renders the page. But this
leads to two questions:

* (Curiosity:) How did render(... :collection) know about the newly
created metered_service without an ID? I know that
premise.metered_services.build will create a new record, but it appears
that the new record doesn't appear on the premises.metered_services list
until it's saved.

* (Necessity:) Assume the user is looking at
views/premises/edit.html.erb. I want a button that says "add
metered_service to the current premise". What's the right way to do
that? (Clearly, I haven't made friends with form_for() just yet.)

TIA.

- ff

--
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.

No comments:

Post a Comment