witam, od wczoraj walczę z jednym problemem i nie mam zielonego pojęcia jak go rozwiązać. Otóż w następującej formie, chciałbym wyświetlić wartość pola w formie labela:
<% form_for @person_data do |person_data| %>
<%= person_data.label :first_name %>
....
<% end %>
niestety nie działa, ani z przecinkiem, ani bez… wydaje mi się że musi być jakaś możliwość zrobienia tego, jednak siedzę w railsach od 3. miesięcy i skończyły mi się pomysły jak to zrobić…
<% end %>[/code]
jak widać do @a masz przypisane coś i to w label dajesz i się pokażę. Musi działać. W końcu z czegoś te formtastiki i inne rzeczy korzystają, poprzez :label
@Gotar: w Twoim przykładzie wyświetlana jest wartość zmiennej do której odwołujesz się bezpośrednio, tylko jak dobrałbyś się do wartości poprzez symbol?
ja też, może to opisz jakoś sensownie, wklej więcej kodu, który się ze sobą łączy. Pokaż gdzie leży to co chesz wyciągnąć, jak ma się do tego forum itp
def self.new_with_marks(foto)
opinion = Opinion.new
foto.criteria.each do |criterium|
mark = Mark.new
mark.criterium = criterium
opinion.marks.push mark
end
opinion
end
end[/code]
oraz view które pozwala dodawać komentarze (wraz z ocenami wg. różnych kryteriów - obok oceny którą można będzie wpisać/ wybrać chcę umieścić nazwę kryterium) do zdjęć.
<%= builder.hidden_field :criterium_id %>
<%= builder.label /* nazwa kryterium */ %> <--- nie wiem jak dobrać się w tym miejscu do wartości
mark.criterium_name gdzie mark jest jednym z wielu opinion.marks
<%= builder.text_field :note %>
<% end %>
<%= f.submit 'Create' %>
<% end %>[/code]
Nie wiem jak to dokładniej opisać... w wyniku chcę mieć formę która będzie miała jedno pole komentarza oraz kilka pól z ocenami zdjęcia wg konkretnego kryterium... i właśnie nie wiem jak wyświetlić nazwę kryterium... zaznaczę jeszcze że liczba kryteriów oceny może się zmieniać w zależności od typu zdjęcia.
@squil: może i łatwiej, ale nie wiem jak się dobrać do zmiennej criterium_name która jest w opinion.marks… w zagnieżdżonej formie
@foto = Foto.find(params[:id]) # or whatever
@opinion = Opinion.new_with_marks(@foto)
@marks = @opinion.marks
i w widoku
<% form_remote_for [foto, @opinion], ... do |f| %>
...
<% f.fields_for @marks do |builder, index| %>
Ale: z tego co wiem, fields_for nie iteruje po obiektach, więc jeśli masz więcej niż jeden mark to powinieneś zrobić
<% @marks.each do |mark| %>
<% f.fields_for mark do |builder| %>
# formularz
<% end %>
<% end %>
i otrzymałem błąd:
ODBC::Error: 22005 (245) [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting the varchar value '— :criterium_id
’ to data type int.: SELECT TOP 1 * FROM [criteria] WHERE ([criteria].[id] = ‘— :criterium_id’)