Salut avoir une table nommée catégorie qui a deux clés étrangères à l'utilisateur de la table, la structure est donnée ci-dessous. Comment puis-je obtenir le nom d'utilisateur correspondant à created_by et modified_by en utilisant les relations. @category = Category.find(params[:id])
donne uniquement les détails de la table des catégories. Ma classe actuelle modèle estRoR - relation de modèle
class Category < ActiveRecord::Base
validates_uniqueness_of :title, :message => "Title already exist"
validates_presence_of :title, :message => "Cannot be blank"
belongs_to :user
end
Comment puis-je associer à la fois les champs CREATED_BY et MODIFIED_BY au modèle utilisateur
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`created_by` int(11) unsigned default NULL,
`modified_by` int(11) unsigned default NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `created_by` (`created_by`),
UNIQUE KEY `modified_by` (`modified_by`)
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) unsigned NOT NULL auto_increment,
`username` varchar(25) NOT NULL,
`password` varchar(255) NOT NULL,
`usertype_id` int(11) unsigned NOT NULL,
`active` tinyint(1) NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `usertype_id` (`usertype_id`)
)
--
-- Constraints for table `categories`
--
ALTER TABLE `categories`
ADD CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
ADD CONSTRAINT `categories_ibfk_2` FOREIGN KEY (`modified_by`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE;
des thats great! Ai-je besoin de la deuxième partie (code à placer dans le modèle utilisateur)? –
aussi '<% = debug (@ category.creator)%>' montre tous les champs y compris le mot de passe, aucun moyen de récupérer le champ du nom d'utilisateur seulement? –
Vous n'avez pas besoin de la deuxième partie, mais vous devriez l'avoir. Il est toujours préférable de définir la relation des deux côtés. – Swanand