2008/6/25 Eduardo Trápani <[EMAIL PROTECTED]>: > Supongo que tiene que haber una manera más elegante. Probé la de abajo y > funciona, salvo para el campo contratista.nombre. Funciona tanto 'campo' > como :campo pero no sé si hay manera de pedirle un campo de un objeto > asociado (y no sé si es más "a la ruby").
Eduardo, Quizás estás buscando un helper... Yo uso algunos muy básicos para arrancar las aplicaciones, lo podés ver en http://github.com/djanowski/rails_basic_helpers. Por ahora moví al repo lo que vos estás buscando, los helpers de tablas. <%= table_for :contratos %> <%= table_for :contratos, %w{fecha contratista desde hasta}, :headers => true %> Con respecto al eval, este helper te permite hacer: <%= table_for :contratos, [:fecha, lambda {|c| c.contratista.nombre }, :desde, :hasta] %> De todas maneras, en tu caso te recomiendo que definas el método #to_s en todos tus modelos y que devuelvas algo lógico para tu modelo (por ejemplo, nombre). Este helper y ERb en general siempre llaman al método to_s de todo lo que tratan de imprimir, entonces es una buena práctica definirlos (además por un tema de DRY): <%= @contratista %> es lo mismo que <%= @contratista.to_s %> entonces si en tu clase Contratista tenés un def to_s; nombre; end todo queda más bello. Y podés usar el helper sin el lambda. Si te interesa instalar los helpers que te pasé: sudo gem install djanowski-rails_basic_helpers --source=http://gems.github.com Y en tu config/environment.rb: config.gem 'djanowski-rails_basic_helpers' Si sólo te interesa chusmear/copiar el código: http://github.com/djanowski/rails_basic_helpers/tree/master/lib/basic_helpers.rb Espero que sirva. _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
