2011-05-16 14 views
0

Je ne suis pas un utilisateur de rails, et j'ai été troublé par l'envoi de paramètres du contrôleur au modèle. Dis, mon modèle a les champs user_id_from et user_id_to, mais au contrôleur ils sont venus comme to et from (pour simplifier côté client).Envoie les paramètres du contrôleur au modèle avec validation

Donc, dans mon contrôleur je devrais modifier des champs pour le modèle avec ce code laid:

UserRelationship.crate (: à => params [:], user_id_to: de => params [: user_id_from])

OU

cette modification pourrait être effectuée d'une autre manière?

Répondre

1

Habituellement, le plus simple est de changer le contrôleur ou le formulaire pour les envoyer en tant que params [: user_id_to] et params [: user_id_from] si possible.

Mais une autre façon de le rendre plus facile à utiliser pourrait être alias_attribute

# app/models/user_relationship.rb 
class UserRelationship < ActiveRecord::Base 
    alias_attribute :to, :user_id_to 
    alias_attribute :from, :user_id_from 
end 

La façon longhand de le faire est aussi assez simple:

def to=(val) 
    self['user_id_to'] = val 
end 
def from=(val) 
    self['user_id_from'] = val 
end 
+0

Merci! Pensez alias_attribute est exactement ce que je veux dire – sheepwalker

Questions connexes