Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3217 connectés 

 


Pourquoi j'aime rails?




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  15  16  17  ..  26  27  28  29  30  31
Auteur Sujet :

[Rails] Blabla@rails

n°1884946
LeRiton
Posté le 15-05-2009 à 13:27:27  profilanswer
 

Reprise du message précédent :
Bon, j'ai externalisé le service avec le open dans une lib, c'est également plus cohérent. L'idée, c'est que même en faisant les manips dont tu parles (charger les require à l'initialisation du serveur), ça ne marche pas mieux.

 

J'ai donc une classe, dans le répertoire lib, qui se charge entre autre du open :

 
Code :
  1. require 'open-uri'
  2.  
  3. class MaClasse
  4.  
  5.  def self.ma_methode(url)
  6.    open(url)
  7.  end
  8. end
 

Je charge mon environnement de dev et MaClasse.ma_methode fonctionne comme désiré. je fais le même appel dans mon controller et là, timeout sur l'open (ma_methode est correctement appelée).

 

Je capte pas :/


Message édité par LeRiton le 15-05-2009 à 13:28:05
mood
Publicité
Posté le 15-05-2009 à 13:27:27  profilanswer
 

n°1885082
Skateinmar​s
Posté le 15-05-2009 à 21:07:58  profilanswer
 

igarimasho a écrit :


Et également je pense que le require 'open-uri' devrait plutôt se trouver dans un fichier d'initialisation de Rails plutôt que dans le fichier de définition du controlleur ;)


 
Non c'est une lib standard, ca a pas trop de sens de la charger dans un initializer. le require dans la lib à part qui l'utilise c'est clean je trouve.
 
Pas trop d'idées pour le timeout...
C'est bien la meme machine ? Le même RAILS_ENV ?
Est-ce que tu vois ta requête dans les logs du serveur appelé ?


---------------
Feedback HAV
n°1885122
masklinn
í dag viðrar vel til loftárása
Posté le 15-05-2009 à 23:58:38  profilanswer
 

http://intertwingly.net/blog/2009/ [...] With-Rails :/


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1885181
LeRiton
Posté le 16-05-2009 à 12:23:01  profilanswer
 

Skateinmars a écrit :

Pas trop d'idées pour le timeout...
C'est bien la meme machine ? Le même RAILS_ENV ?
Est-ce que tu vois ta requête dans les logs du serveur appelé ?


 
Même machine, même environnement, et oui, je vois la requête dans les logs. Comme évoqué plus haut, j'ai tenté de différer l'exécution de cette tâche (appel de MaClasse.ma_methode en utilisant run_later) : même combat, les logs indiquent que le thread est tué parce qu'il prend trop son temps.
 
Uncool :(  

n°1886719
igarimasho
Posté le 20-05-2009 à 22:19:28  profilanswer
 

Une lecture qui semble intéressante: http://www.mockobjects.com/book/
 
Et un autre livre encore en version Rough Cuts: http://my.safaribooksonline.com/9780321620293
 
 :)


Message édité par igarimasho le 21-05-2009 à 11:56:10
n°1886892
igarimasho
Posté le 21-05-2009 à 20:58:43  profilanswer
 

J'en ai plein le dos de taper des lignes et des lignes de code et des tests qui se ressemblent  [:ciler]
 
Quelqu'un a testé ou utilise l'un des plugins suivants:

  • resources_controller: github. Màj Février 2009
  • resource_controller: github. Màj Mars 2009
  • make_resourceful: github. Màj Janv 2009
  • Hobo: site officiel. Rails 2.3 est sorti le 16 Mars, Hobo n'a été compatible avec qu'à partir du 27 avril  [:ulalume]  
  • Streamlined: github. Màj Sept 2008
  • ActiveScaffold: github, site officiel. Màj hier
  • LipsiAdmin: github, site officiel. Màj aujourd'hui
  • Resourcelogic: github, site officiel. Par le même auteur d'authlogic. Initialement calqué sur resource_controller. C'est en version semi-béta comme il l'appelle.
  • Autre?


Merci de votre feedback  :jap:  
 
PS: incessement sous peu je compte migrer définitivement de restful_auth à authlogic.
 
PS2: un de mes patchs a été accepté dans Rails et j'apparaîs dans http://contributors.rubyonrails.org/ [:kbchris]

Message cité 1 fois
Message édité par igarimasho le 21-05-2009 à 21:24:29
n°1886895
Skateinmar​s
Posté le 21-05-2009 à 21:30:20  profilanswer
 

igarimasho a écrit :

J'en ai plein le dos de taper des lignes et des lignes de code et des tests qui se ressemblent  [:ciler]
 
PS2: un de mes patchs a été accepté dans Rails et j'apparaîs dans http://contributors.rubyonrails.org/ [:kbchris]


 
Congrats :jap:
 
Sinon je n'ai pas testé un de ces plugins (merci pour lipsiadmin, j'en avais jamais entendu parler) mais resource_controller (créé par le dev de active_presenter entre autres) est apparemment le plus à la mode dans la communauté (avec resources_controller).
Hobo n'a pas l'air très convaincaint et active_scaffold n'a pas une très bonne réputation. Resourcelogic est jeune comme deja dit mais profite de la publicité faite par authlogic/searchlogic


---------------
Feedback HAV
n°1886896
igarimasho
Posté le 21-05-2009 à 21:34:25  profilanswer
 

Je vais jeter un oeil à resource_controller alors. Merci :)

n°1887031
igarimasho
Posté le 22-05-2009 à 14:49:37  profilanswer
 

En fait je me demande si c'est pas mieux de créer un controller Admin et d'en faire hériter mes autres controlleurs? J'ai l'impression que mon appli va m'obliger à trop customiser resource_controller et je ne vais pas vraiment en tirer un gros avantage.
 
Je suis en train de migrer de restful_auth à authlogic. Pour l'activation du compte par email vous utilisez aasm ou un truc homemade tout bête qui fixe l'attribut state à active/pending/deactivated?
 
EDIT: pour le state du User, en fait j'autorise les user à s'autologger même s'ils ne sont pas confirmés, je désactive seulement l'accès à certaines fonctionnalités.
 
EDIT: c'est dingue authlogic, tout est customisable (ou presque) de manière propre avec des block! Très bel exemple de code Ruby  [:benou_miam]

Message cité 1 fois
Message édité par igarimasho le 22-05-2009 à 16:44:30
n°1887065
igarimasho
Posté le 22-05-2009 à 17:36:33  profilanswer
 

Je n'arrive pas  à suivre le tutoriel pour mettre à jour les mots de passe: http://www.binarylogic.com/2008/11 [...] authlogic/
 

Citation :

The update method is nice, because if the user is successfully saved, Authlogic will automatically log them in,


Ca ne marche pas pour moi, je reste toujours déloggé  :(
 
EDIT: et quand bien même ça marcherait, comment faire comprendre à authlogic que lorsqu'un admin mets à jour le profile d'un user il ne doit pas le logger en tant que ce user  :??:  Y'a un truc qui ne colle pas  [:urd]. EDIT: j'ai envoyé un mail au développeur.
 
 
EDIT: sinon mon idée de faire un controller AdminController dont les autres controlleurs héritent est en bonne voie, il faut juste que j'arrive à dynamiquement ajouter des instances variables au controlleur et c'est tout bon  :D  
 
EDIT: instance_variable_set, et j'adore la doc Ruby: :D

Citation :

Sets the instance variable names by symbol to object, thereby frustrating the efforts of the class‘s author to attempt to provide proper encapsulation.


Message édité par igarimasho le 22-05-2009 à 18:14:20
mood
Publicité
Posté le 22-05-2009 à 17:36:33  profilanswer
 

n°1887173
igarimasho
Posté le 23-05-2009 à 11:58:15  profilanswer
 

Après avoir fouillé, pour logger un user manuellement il faut faire: UserSession.create(@user)

n°1887181
esox_ch
Posté le 23-05-2009 à 12:41:16  profilanswer
 

igarimasho a écrit :

En fait je me demande si c'est pas mieux de créer un controller Admin et d'en faire hériter mes autres controlleurs? J'ai l'impression que mon appli va m'obliger à trop customiser resource_controller et je ne vais pas vraiment en tirer un gros avantage.
....


 
C'est exactement ce que je fais pour pas être trop limité  


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1887190
igarimasho
Posté le 23-05-2009 à 13:08:44  profilanswer
 

Ok ça me conforte dans ce choix. Pour le moment je peux faire tout ce que je veux, DRY, testable, et mes lignes de codes fondent comme neige au soleil. Et ça m'épargne une dépendance avec un plugin. Bon WE :jap:

n°1887217
igarimasho
Posté le 23-05-2009 à 19:12:10  profilanswer
 

Mince je voulais aussi gratter des lignes de tests, mais ça ne marche pas car il faut tout de même tester que les views s'affichent. Il faut donc que je créé des views abstraites que tous mes modèles peuvent utiliser. Je vais étudier le blog de Jay Fields à propos de son Presenter pattern EDIT: ha non il ne parle pas de ça. Vous gérez ça comment vos views redondantes en zone admin?
 
Il faut faire une boucle qui affiche chaque attribut du modèle? Et pour les modèles qui affichent une image associée? Et pour les formulaires et les drop-down box? [:urd]
 
EDIT: une petite comparaison comment Django et Streamlined approchent le problème: http://blog.josephwilk.net/critiqu [...] jango.html

Message cité 1 fois
Message édité par igarimasho le 23-05-2009 à 19:52:30
n°1887234
masklinn
í dag viðrar vel til loftárása
Posté le 23-05-2009 à 21:36:22  profilanswer
 

igarimasho a écrit :

EDIT: une petite comparaison comment Django et Streamlined approchent le problème: http://blog.josephwilk.net/critiqu [...] jango.html


La version Django date un peu (beaucoup?), ça a été modifié, les admins sont maintenant définies par des classes complètement séparées (et non nestées) et le système est plus pratique et plus flexible :o
 
Voir la doc de l'admin pour la base et les admin actions (nouveauté du futur Django 1.1) pour l'extensibilité.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1887238
igarimasho
Posté le 23-05-2009 à 21:55:34  profilanswer
 

Intéressant :)
 
Je sais pas trop si j'ai envie de me lancer dans ce genre d'implémentation pour mon appli Rails, c'est un sacré morceau à coder et au final ça peut-être crade. En même temps toutes ces views et ces tests chiants à écrire...

n°1887239
masklinn
í dag viðrar vel til loftárása
Posté le 23-05-2009 à 22:04:28  profilanswer
 

igarimasho a écrit :

Intéressant :)

 

Je sais pas trop si j'ai envie de me lancer dans ce genre d'implémentation pour mon appli Rails, c'est un sacré morceau à coder


D'où l'avantage d'un framework qui le fournit [:cosmoschtroumpf]


Message édité par masklinn le 23-05-2009 à 22:04:43

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1887482
Shinuza
This is unexecpected
Posté le 25-05-2009 à 09:27:39  profilanswer
 

masklinn a écrit :


La version Django date un peu (beaucoup?), ça a été modifié, les admins sont maintenant définies par des classes complètement séparées (et non nestées) et le système est plus pratique et plus flexible :o
 
Voir la doc de l'admin pour la base et les admin actions (nouveauté du futur Django 1.1) pour l'extensibilité.

Plutôt ouais :o


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1888171
igarimasho
Posté le 26-05-2009 à 19:34:42  profilanswer
 

J'ai 2 soucis:
 
- Safari qui fait chier: avec certains modèles si la création d'un nouveau modèle comporte des erreur, il timeout au lieu de m'afficher la page de l'appli avec les messages d'erreur. Aucun souci avec Firefox.
 
- Au lieu de Picture et File models, j'ai voulu créer un Upload model, sauf que j'ai toujours mon :style pour les images, et que du coup Paperclip essaye de redimensionner des fichiers doc par exemple. Comment l'empêcher de faire ça? Il pourrait pas vérifier le content_type un peu plus intelligement?
 
EDIT: en fait je vais créer:
 
Upload < ActiveRecord
Picture < Upload
Asset < Upload
 
Pas de gotcha si j'utilise abstract_class sur Upload?

Message cité 1 fois
Message édité par igarimasho le 26-05-2009 à 20:14:54
n°1888196
esox_ch
Posté le 26-05-2009 à 20:31:30  profilanswer
 

igarimasho a écrit :

J'ai 2 soucis:
 
- Safari qui fait chier: avec certains modèles si la création d'un nouveau modèle comporte des erreur, il timeout au lieu de m'afficher la page de l'appli avec les messages d'erreur. Aucun souci avec Firefox.
 
ça m'étonne que ce soit exactement ce qui arrive ... Tu as regardé les headers envoyés dans les 2 cas ?
 
- Au lieu de Picture et File models, j'ai voulu créer un Upload model, sauf que j'ai toujours mon :style pour les images, et que du coup Paperclip essaye de redimensionner des fichiers doc par exemple. Comment l'empêcher de faire ça? Il pourrait pas vérifier le content_type un peu plus intelligement?
 
EDIT: en fait je vais créer:
 
Upload < ActiveRecord
Picture < Upload
Asset < Upload
 
Pas de gotcha si j'utilise abstract_class sur Upload?
 
Tu entends quoi par "pas de gotcha"?


 


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888201
igarimasho
Posté le 26-05-2009 à 20:37:44  profilanswer
 

Comment on fait pour voir les header avec Safari? Installer SafariStand?
 
En fait j'ai pas besoin d'abstract_class.

n°1888204
esox_ch
Posté le 26-05-2009 à 20:41:13  profilanswer
 

Oui
 
Comment tu fais sans abstract_class?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888209
igarimasho
Posté le 26-05-2009 à 20:50:34  profilanswer
 

Juste créer une classe Upload < AR avec sa table uploads, puis faire hériter mes autres classes: Picture < Upload, Asset < Upload. A voir s'il faut dire à Rails qu'il doit chercher dans la table uploads et non pas pictures ou assets qui n'existent pas.
 
EDIT: je crois avoir trouvé: http://m.onkey.org/2009/3/24/defau [...] the-rescue


Message édité par igarimasho le 26-05-2009 à 20:53:15
n°1888227
igarimasho
Posté le 26-05-2009 à 21:35:57  profilanswer
 

Foutue doc éparpillée. En fait pour éviter que Paperclip tente de thumbnailer un fichier non reconnu par ImageMagick, il faut utiliser before_post_process, voir ici: http://giantrobots.thoughtbot.com/ [...] -paperclip
EDIT: ha mais en fait c'est une méthode non documentée donc je pouvais toujours chercher dans leur api  [:ulalume]  
 
Ca vous économisera peut-être des heures de recodage et de recherche en tout genre. Perso renommer un model Picture en Asset sans tout faire péter n'a été possible que grâce à 100% de test coverage en encore y'a des trucs pas testable :sweat:
 
EDIT: autoquote:

Citation :

- Safari qui fait chier: avec certains modèles si la création d'un nouveau modèle comporte des erreur, il timeout au lieu de m'afficher la page de l'appli avec les messages d'erreur.


Je viens de refaire excatement la même manip avec le même fichier, et cette fois Safari m'affiche correctement la page avec le message d'erreur qui va bien  [:pingouino]
EDIT: ha non il redéconne  [:kaio]


Message édité par igarimasho le 26-05-2009 à 21:58:07
n°1888232
esox_ch
Posté le 26-05-2009 à 21:46:16  profilanswer
 

Par contre j'ai pas capté pourquoi tu ne veux pas utiliser le abstract_class qui est tellement pratique


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888239
igarimasho
Posté le 26-05-2009 à 22:03:01  profilanswer
 

Avec abstract_class il faut créer une table pour chaque classe et j'avais la flemme ni vraiment le besoin, donc je voulais partir sur du polymorphisme sur une seule table avec une colonne type et set_table_name, puis finalement ça me faisait faire 1 requête par classe et j'avais la flemme aussi.
 
Maintenant je viens de trouver une option dans Paperclip qui résoud mon problème initial: ne pas appeller ImageMagick sur des fichiers où il planterait. Mais je viens aussi de trouver des options que je connaissais pas avec IM donc il se peut que je cré une nouvelle classe totalement différente et qui donc utilise abstract_class...
 
En fait j'ai le cerveau qui bouillonne je vais m'arrêter là, la nuit me portera conseil.

n°1888244
esox_ch
Posté le 26-05-2009 à 22:15:22  profilanswer
 

igarimasho a écrit :

Avec abstract_class il faut créer une table pour chaque classe et j'avais la flemme ni vraiment le besoin ....
.


 
Mais absolument pas :heink:
Si tu écris self.abstract_class=true , ça te dispense de créer une table pour le modèle en question


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888275
Skateinmar​s
Posté le 27-05-2009 à 00:37:39  profilanswer
 

esox_ch a écrit :


 
Mais absolument pas :heink:
Si tu écris self.abstract_class=true , ça te dispense de créer une table pour le modèle en question


 
C'est pas plutot le contraire ?
En tous cas je suis certain que par defaut une seule table est utilisée pour tous les sous-modèles (le principe même de la STI)


---------------
Feedback HAV
n°1888336
esox_ch
Posté le 27-05-2009 à 08:56:06  profilanswer
 

http://giantrobots.thoughtbot.com/ [...] compromise


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888395
igarimasho
Posté le 27-05-2009 à 10:11:16  profilanswer
 

Question subsidiaire: quelqu'un sait s'il est possible d'inverser les numéros de pages que renvoie will_paginate?
 
C'est pour mon blog, genre le post le plus ancien se retrouve en page 1 et le plus récent en page 15. Pensez page-caching et vous comprendrez le problème ;)
 
EDIT: coïncidence: http://groups.google.com/group/wil [...] 385771499c   :whistle:
 
EDIT2: Hmmm ça va être chiant de monkey patcher will_paginate et même en inversant les numéros de page il peut y avoir des edge-case foireux où il faudra expirer toutes les pages. Je pensais alors faire une action index en page cache, et lorsqu'on veut paginer en fait ça bascule sur une autre action (au hasard 'archive') non mise en cache. Je pense pas que beaucoup de monde lisent au-delà des 20 derniers articles donc uniquement mettre en cache les 20 derniers articles devrait largement suffire. Chaque article est mis en cache individuellement évidemment. Vous en pensez quoi de ma politique de mise en cache?
 
EDIT:3 je vais faire comme ça, ça prend 10" à coder et je suis sûr que ça me suffira comme implémentation.


Message édité par igarimasho le 27-05-2009 à 11:03:18
n°1888445
esox_ch
Posté le 27-05-2009 à 11:05:11  profilanswer
 

J'ai pas Rails sous la main donc je peux pas tester, mais t'as essayé de passer à will_paginage le modèle avec un scope qui fasse ce reverse ? Niveau performances je sais pas trop ce que ça implique comme ça (sauf erreur, ça depend de comment le modèle est utilisé dans le plugin)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888447
igarimasho
Posté le 27-05-2009 à 11:07:06  profilanswer
 

Et j'attaque de nouveau: quid des plugins pour ajouter des tags à des objects? acts_as_taggable_on_steroids est le plus connu, mais j'ai pas envie de me retrouver dans la même situation qu'avec restful_auth, voir une comparaison ici: http://skwpspace.com/2008/05/14/ra [...] omparison/
 
Ma sélection de plugins:
http://github.com/citrusbyte/is_taggable/tree/master (le plus performant mais entraîne des contraintes)
http://github.com/fauna/has_many_p [...] ree/master
http://github.com/giraffesoft/is_taggable/tree/master
http://github.com/mbleigh/acts-as- [...] ree/master (le plus suivi sur github et plus de commits)
 

esox_ch a écrit :

J'ai pas Rails sous la main donc je peux pas tester, mais t'as essayé de passer à will_paginage le modèle avec un scope qui fasse ce reverse ? Niveau performances je sais pas trop ce que ça implique comme ça (sauf erreur, ça depend de comment le modèle est utilisé dans le plugin)


Pas bête, je vais voir s'il est également possible en jouant sur le css ou un peu de code d'inverser les numéros de page.


Message édité par igarimasho le 27-05-2009 à 14:40:13
n°1888603
igarimasho
Posté le 27-05-2009 à 14:51:55  profilanswer
 

Finalement j'ai codé mon propre système de pagination qui tire partie de counter_cache et acts_as_list. Ca me permet de mettre des pages comme je le souhaite, c'est tout con à faire, pas besoin de plugin pour ça, will_paginate me servira pour la pagination sur les pages dynamiques et là il est super pratique.

n°1888608
seabee
Posté le 27-05-2009 à 14:58:55  profilanswer
 

igarimasho a écrit :

Finalement j'ai codé mon propre système de pagination qui tire partie de counter_cache et acts_as_list. Ca me permet de mettre des pages comme je le souhaite, c'est tout con à faire, pas besoin de plugin pour ça, will_paginate me servira pour la pagination sur les pages dynamiques et là il est super pratique.


Code :
  1. page_index = ((params[:page] || 1).to_i - 1)
  2. offset = @current_page.number_of_articles.to_i
  3. first_article_index = (page_index * offset)
  4. @articles = all_articles[first_article_index..(first_article_index + offset - 1)]
  5. @paginate_left  = (page_index > 0) && page_index
  6. @paginate_right = (first_article_index + offset < all_articles.size) && (page_index + 2)


J'avais fait ça, une fois.


Message édité par seabee le 27-05-2009 à 14:59:39
n°1888630
Skateinmar​s
Posté le 27-05-2009 à 16:09:50  profilanswer
 


C'est donc bien ce que j'avais dit :o

 

A moins que tu disais "il n'y a pas besoin de créer une table pour la classe parente"

Message cité 1 fois
Message édité par Skateinmars le 27-05-2009 à 16:10:15

---------------
Feedback HAV
n°1888632
esox_ch
Posté le 27-05-2009 à 16:12:44  profilanswer
 

Skateinmars a écrit :


C'est donc bien ce que j'avais dit :o
 
A moins que tu disais "il n'y a pas besoin de créer une table pour la classe parente"


 
On on s'est mal compris


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1888692
igarimasho
Posté le 27-05-2009 à 18:21:50  profilanswer
 

Finalement les tags, c'est inutile, je préfère qu'un model belongs_to :category, donc je vais écrire mon propre système. Par contre je voudrais un seul model pour gérer les catégories de Article, Product et ForumPost (oui je vois loin), dans ce cas là ce serait du polymorphisme, mais j'ai l'impression que ça marche dans le sens inverse de celui que Rails attend. Vous avez écrit un truc similaire?

n°1888716
seabee
Posté le 27-05-2009 à 19:32:36  profilanswer
 

Si t'as un belongs_to :category, t'as un category_id dans Article, Product et roulez?
 
Le poly, c'est dans l'autre sens, effectivement. Quand Cat belongs_to :categorizable
 
Ou alors j'ai rien compris?

n°1888727
Skateinmar​s
Posté le 27-05-2009 à 20:08:52  profilanswer
 

igarimasho a écrit :

Finalement les tags, c'est inutile, je préfère qu'un model belongs_to :category, donc je vais écrire mon propre système. Par contre je voudrais un seul model pour gérer les catégories de Article, Product et ForumPost (oui je vois loin), dans ce cas là ce serait du polymorphisme, mais j'ai l'impression que ça marche dans le sens inverse de celui que Rails attend. Vous avez écrit un truc similaire?


 
C'est pas super propre d'avoir un seul modèle, ca serait moche si on avait des catégories au nom identique par exemple mais qui se réfèrent à des items différents. Du coup le polymorphisme aurait pas trop de sens (l'id n'est pas stocké dans la table categories)
 
Avec une seule table et des sous-modèles c'est possible par contre avec la STI :

Code :
  1. class Category < ActiveRecord::Base
  2. end
  3. class ForumCategory < Category
  4.   has_many :forum_posts
  5. end
  6. class ProductCategory < Category
  7.   has_many :products
  8. end
  9. class Product < ActiveRecord::Base
  10.   belongs_to :product_category, :as => 'categorie' #'as' facultatif
  11. end
  12. class ForumPost < ActiveRecord::Base
  13.   belongs_to :forum_category
  14. end
  15. #migration :
  16. create_table "categories" do |t|
  17.   t.string "type"
  18. end
  19. create_table "products" do |t|
  20.   t.integer "category_id"
  21. end
  22. #code
  23. Product.first.categorie
  24. ForumCategory.find(id).forum_posts.first.forum_category


 
Comme dit seabee en fait :D


---------------
Feedback HAV
n°1888751
igarimasho
Posté le 27-05-2009 à 21:52:36  profilanswer
 

Ok c'est ce que je vais faire. Merci de votre avis :)

n°1888900
igarimasho
Posté le 28-05-2009 à 11:15:48  profilanswer
 

Code :
  1. belongs_to :product_category, :as => 'categorie' #'as' facultatif


Attention le :as n'existe pas pour belongs_to, mais ça c'est pas grave il suffit de pas le mettre. Par contre je n'arrive pas à faire marcher le counter_cache pour avoir le décompte. EDIT: ça marche si je fais un destroy j'ai bien count = count - 1/


Message édité par igarimasho le 28-05-2009 à 11:36:11
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  15  16  17  ..  26  27  28  29  30  31

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Ruby On Rails] [Resolu] Routing error[Ruby On Rails] Afficher un message d'erreur depuis un model
[HTML - CSS] Problème avec la balise <a>href="#">blabla</a>[regexp] Extraire deux chaines : "blabla"[espaces,tab]"blublu"
Ruby On Railsruby on rails
Arrivera-t-on a la page 10000 de blabla avant 2006?blabla 3
blabla 2PUTAIN HARKO TU AS FERM2 BLABLA !
Plus de sujets relatifs à : [Rails] Blabla@rails


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)