I want to do in-place edits on a list of data, but I’m having trouble
getting the ID passed through to the controller.
I use this in my view to create the field:
<% for frame in @frames %>
…
<%= in_place_editor_field :frame, :price %>
<% end %>
and this produces the following in my output:
0.0
I understand from some research that what I’m after is to replace
“frame_price__in_place_editor” in both places with
“frame_price_xx_in_place_editor”, where “xx” is the id of the item to be
updated, but I cannot figure out how to modify the call to
in_place_editor_field to pass the id in. I’ve tried the following with
no luck…
<%= in_place_editor_field :frame, :price, :id => frame %>
<%= in_place_editor_field :frame, :price, :id => frame.id %>
<%= in_place_editor_field :frame, :price, {:id => frame} %>
<%= in_place_editor_field :frame, :price, {:id => frame.id} %>
I’d appreciate any help.
yb
Have since discovered that I also need the URL in the Ajax call to
include the id of the item to be updated, as such:
//
...where "xx" is the id of the item to be updated. Still having no luck.
thanks.
yb.
I have since changed view code to the following…
<%=in_place_editor_field (:frame, :price, {:id =>
“frame_price_#{frame.id}_in_place_editor”}, {:url =>
“/frames/set_frame_price/#{frame.id}”}) %>
…and this appears to be accomplishing what I’m after, but seems
extremely kludge-y.
Still wondering if there is a better way of doing this?
thanks.
yb.
Cayce B. wrote:
I have since changed view code to the following…
<%=in_place_editor_field (:frame, :price, {:id =>
“frame_price_#{frame.id}_in_place_editor”}, {:url =>
“/frames/set_frame_price/#{frame.id}”}) %>
…and this appears to be accomplishing what I’m after, but seems
extremely kludge-y.
Still wondering if there is a better way of doing this?
thanks.
yb.
<[email protected] do |frame|%>
<%=frame.price%>
<%=in_place_editor(“price_#{frame.id}”,
{:url => “/frames/set_frame_price/#{frame.id}”})%>
<%end%>
In the controller:
def set_frame_price
frame = Frame.find(params[:id])
frame.price = params[:value]
frame.save
render :text => frame.price
#i put a return in here once…baaaaaad results :]
end
Hope this works
Ciao
Gustav P.
[email protected]
gustav Paul wrote:
Cayce B. wrote:
I have since changed view code to the following…
<%=in_place_editor_field (:frame, :price, {:id =>
“frame_price_#{frame.id}_in_place_editor”}, {:url =>
“/frames/set_frame_price/#{frame.id}”}) %>
…and this appears to be accomplishing what I’m after, but seems
extremely kludge-y.
Still wondering if there is a better way of doing this?
thanks.
yb.
<[email protected] do |frame|%>
<%=frame.price%>
<%=in_place_editor(“price_#{frame.id}”,
{:url => “/frames/set_frame_price/#{frame.id}”})%>
<%end%>
In the controller:
def set_frame_price
frame = Frame.find(params[:id])
frame.price = params[:value]
frame.save
render :text => frame.price
#i put a return in here once…baaaaaad results :]
end
Hope this works
Ciao
Gustav P.
[email protected]
itsdEx.com
I think the in_place_editor_field helper works if you’ve only got one,
in a list you need to somehow tell the different ones apart…one way is
to use their ids
Gustav P.