Ok.... encontre como hacerlo
cree un nuevo FormBuilder
class *LabelFormBuilder *< ActionView::Helpers::FormBuilder
def *text_label*(field,*args)
@template.content_tag(:label,@object.send(field))
end
end
Luego en el haml puse
- mst_form.fields_for(:material,:builder => *LabelFormBuilder*) do |m_form|
= m_form.text_label :detail
Es correcto hacer esto ? o hay otra forma estandar de hacer esto ? me
sorprende que el FormBuilder no tenga un metodo que implemente esto, o yo no
lo encontre..
Saludos
Pablo Rodriguez
El 26 de agosto de 2010 10:21, Pablo Rodriguez
<[email protected]>escribió:
> Paso el código que tengo para aclarar lo que necesito, es un form edit de
> un objeto *work_order* que tiene una lista de *service*,
>
> #work_order
> #work_order_form
> -form_for *...@work_order* do |wo_form|
> #services.service_table
> %table.service_table
> %tr
> %td.header_text_lable
> Orden de Trabajo: Estado
> = wo_form.select
> :status,WorkordersController::STATUS,:selected =>@work_order.status
> #services_list
> -wo_form.fields_for *:services* do |s_form| --> aca itero
> por la lista de servicios que tiene la @work_order, *dentro de ese
> fields_for estoy parado en un elemento de la lista de services*
> %table.service_table
> %tr
> %td.table_header{:colspan=>4}
> %label{:id=>"serviceType"}
> = s_form.hidden_field
> :service_type_id,:class=>:service_type_id
> - s_form.fields_for *:service_type* do |st_form| --> aca
> entro el tipo de servicio, y quiero mostrar el nombre del servicio
> =* st_form.text_field :name*,:class=>"header_text_lable"
> *--> lo que hice es un input text con un css que le saca los bords y lo
> pone en disabled. Pero lo que quiero es mostrar un <label> con el nombre del
> servicio y no con un input text, necesito acceder al objeto que esta usando
> el form builder en st_form*.
> = s_form.hidden_field :_destroy
>
> = link_to_remove_fields f,:services
> %tr
> %td
> %td Material
> %td Cantidad
> %td Precio
> - s_form.fields_for :material_services do |ms_form|
> =render "material_service_fields",:f => ms_form
>
> =wo_form.submit "Grabar"
>
>
> Pablo Rodriguez
>
>
> El 25 de agosto de 2010 23:12, Matt's <[email protected]> escribió:
>
> Para mostrar el valor de cualquier objeto es asi:
>> <%= objeto.atributo%>
>>
>> tambien podes salvar la excepcion si el valor te viene nullo
>>
>> <%= objeto.atributo.blank? ? ' - ' : objeto.atributo%>
>>
>> espero te sirva, es mi primer aporte a esta lista. Espero que no sea el
>> unico nomas
>>
>> Matt's
>>
>>
>> 2010/8/25 Pablo Rodriguez <[email protected]>
>>
>>> Tengo un formulario algo como
>>>
>>>
>>> - f.fields_for :service_type do |st_form|
>>> = st_form.text_field :name
>>> = f.hidden_field :_destroy
>>> = link_to_remove_fields f,:services
>>>
>>> st_form es un form builder, lo que necesito es mostrar un valor del
>>> objeto service_type, pero como un label no como un input text.
>>> Quiero mostrar el nombre del service_type, service_type, no encuentro la
>>> forma de hacer algo como
>>> = f.lable :service_type.name
>>> para que me muestre el nombre del tipo de servicio..
>>> solo lo he podido hacer como
>>>
>>> = f.text_field :name
>>>
>>> pero eso me crea un input text..
>>>
>>> Es medio choto pero no lo encuenro..
>>>
>>> Muchas gracias por la ayuda
>>>
>>> Pablo Rodriguez
>>>
>>>
>>>
>>> _______________________________________________
>>> Ruby mailing list
>>> [email protected]
>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>
>>>
>>
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar