rake routes filtered by controller
23/09/2011rake routes CONTROLLER=controller_name
All things must pass…
Archive of articles classified as' "Rails"
Back homeI just ran into a strange problem. It turns out that when you try to upload a file using paperclip on IE, the content-type is different from other browsers and you have to take of them if you want to use paperclip’s validates_attachment_content_type
method.
I needed to add to my model validation the following content-types: “image/pjpeg” and “image/x-png”. I did not have a problem with gifs.
validates_attachment_content_type :logo, :content_type => ['image/jpeg', 'image/jpg', 'image/gif', 'image/png', 'image/pjpeg', 'image/x-png']
Rails 3.1 – CoffeScript from BostonRB on Vimeo.
Rails 3.1 – The Asset Pipeline from BostonRB on Vimeo.
If you ever run into this problem when trying to run bundle install using ruby 1.9.2 all you need to do is change in your Gemfile ruby-debug to ruby-debug19.
Recientemente encontré un ‘bug’ en una aplicación que estoy desarrollando, tiene que ver con los callbacks de Rails, en específico before_save.
Por fín lo he resuelto, no de la manera que esperaba, tal vez por berrinchudo ya que aún me queda una duda, pero al fin puedo continuar desarrollando y un peso se ha ido de mí.
La parte afectada de la aplicación involucra 2 modelos, digamos:
class Category has_many :products end class Products belongs_to :category end app/models/category.rb before_save return unless self.published self.products.first.amount = (algun calculo dinámico) end |
Justo en este callback es donde está lo misterioso, la cantidad(amount) del primer producto nunca cambiaba amenos que actualizara la categoría, la publicara y la grabara 2 veces!! a la 2a vez el cálculo se realizaba, esto me quitó el sueño y me hizo perder gran cantidad de tiempo analizando el problema.
por qué a la 2a vez si pasaba?
Corrí la aplicación con el debugger y pues Rails sí pasaba por esa parte del código pero la cantidad del producto quedaba intacta, incluso intente cosas como estas:
app/models/category.rb before_save return unless self.published self.products.first.amount = (algun calculo dinámico) self.name = 'Algún nombre' end |
Y pues la primera vez que grababa, ya con el atributo de published en true, name sí se actualizaba pero amount no! sólo hasta la segunda… hasta la fecha no entiendo por que sucede esto, no he logrado llegar a una conclusión, lo que sí es que por lo pronto ya encontré una solución:
app/models/category.rb before_save return unless self.published self.products.first.update_attribute(:amount, (algun calculo dinámico)) end |
De esta manera el cálculo ocurre todas y cada una de las veces que la categoría es actualizada.