Jak wywołać in_place_editor_field w bloku?

Witam. Mam problem z helper in_place_editor_field.

Otóż działa on bez problemu w przypadku kiedy do widoku wysylam pojedyńczy egzemplarz obiektu. Ale w momęcie kiedy wysylam kolekcje, nie mogę wywołać na poszczegółnym elemencie in_place_editor_field.
Np.

<% @tasks.each do |t| %> <%= in_place_editor_field 't', 'name' %> <% end %>
dostaje wtedy error:
Called id for nil, which would mistakenly be 4 – if you really wanted the id of nil, use object_id

Ktoś coś poradzi?

<% @tasks.each do |t| %> <%= in_place_editor_field 't', 'name' %> <% end %>
in_place_editor_field jako pierwszy parametr przyjmuje obiekt. W Twoim kodzie zamiast obiektu jest string?

Moze sie przyda:
http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptMacrosHelper.html#M000570

Próbowałem i tak (rozwiązanie ze stringiem wziołem z książki Rails Przepisy - tam jest podany string).

Po wstawieniu t jako obiektu:
@#Transfer:0x35a109c’ is not allowed as an instance variable name

Na ktorej stronie? :slight_smile:

16 :wink:

<% @a = (0…10).to_a %>

<% @a.each do |t| %>
<% @t = t %>
<%= in_place_editor_field :t, “to_s” %>

<% end %>

Dziala? Dziala.
W sumie wszystko jest napisane w przepisie :wink:

brakujący element @t = t :wink:

Co prawda pomogło, ale jest inny problem.
Mam pole amountbrutto, które jest typu float. Po wyslaniu zapytania in_place_edit (i ustawienia automatycznej metody obslugujacej to zapytanie w kontrolerze) napotkal mnie taki error (z loga)

NoMethodError (undefined method `size’ for 587.0:Float):

I jak tu sobie poradzic?

Podejrzewam ze amountbrutto powinno byc przekazane jako string, wiec. chyba amountbrutto.to_s pomoze

Próbowałem, o tak:

<% @transfers.each do |t| @transfer = t @transfer.amountbrutto = t.amountbrutto.to_s %> ... <td><%= in_place_editor_field :transfer, :amountbrutto %></td> ...
To samo :frowning: Może nie w tym miejscu “to_s”?