2010-10-25 5 views
0

Apparemment, j'utilise params [: category] (du routage ...) pour catégoriser certains articles dans la même table, et je veux juste définir la colonne catégorie d'un article à params [: category]. J'ai essayé juste direComment utiliser 'params' avec la validation de modèle?

class Article < ActiveRecord::Base 
    has_many :comments 
    belongs_to :article_category # this is the model that has info about categories 
    category = params[:category] 
end 

mais au-dessus de validation jette sur

undefined local variable or method `params' for #<Class:0x3c4ad30> 
erreur

.

  1. Comment utiliser les paramètres [: category] ??

  2. De même, comment puis-je être sûr que params [: category] sera l'une des catégories répertoriées dans la table de base de données article_categories? Je ne veux pas que l'utilisateur tape manuellement l'adresse de la catégorie aléatoire et l'insère dans la table. catégorie, puis lorsque vous effectuez

    @article = Article.new(params[:article]) 
    

    l'attribut catégorie doit être réglée automatiquement: si un article a un attribut

+0

Vous avez vraiment besoin de passer par les bases de MVC. Les paramètres de requête ne sont disponibles que dans les actions du contrôleur, car les contrôleurs gèrent toutes les requêtes HTTP. Pouvez-vous être plus précis sur ce que vous essayez de faire? – Teoulas

Répondre

2

. Il semble que vous ayez juste besoin de créer votre vue pour envoyer le champ catégorie dans le formulaire d'article.

<%= form_for @article do |f| %> 
    <%= f.text_input :category %> 
    ... 

Cela devrait vous donner le param que vous voulez:

params[:article][:category] 

Si la catégorie est un modèle distinct, vous pouvez utiliser une forme imbriquée. Voir http://railscasts.com/episodes/196-nested-model-form-part-1

Questions connexes