Bonjour,
Je créé actuellement un projet perso en Ruby On Rails.
Le but est de faire un petit logiciel de gestion d’un forum de RP.
J’ai donc un personnage à qui je rattache des topics. La difficulté
étant qu’un topic appartient à un personnage principal mais est aussi
partagé entre plusieurs autres personnages en plus comme partenaire du
personnage principal. (bref un forum de rp classique)
J’ai utilisé dans mes modèles des jointures :
class Character < ActiveRecord::Base
has_many :topics, :through => :partner
end
class Topic < AR::B
has_many :character, :through => :partner
end
class Partner < AR:B
belongs_to :character
belongs_to :topic
end
la table partner a cette tête là :
character_id
topic_id
owner => booléen de propriété du topic pour savoir qui est le personnage
principal du topic
j’ai créé une vue “new topic” ou le personnage principal est constant.
Mon probleme est le suivant :
Je voudrais afficher la liste des personnages hormis le personnage
principal avec une check box a côté de chacun et je voudrais qu’en
cliquant sur la check box et en appuyant sur le bouton update, il me
créé automatiquement l’entrée dans la table “partners”
Je m’explique :
dans topics_controller, la méthode new ressemble à ça :
def new
@topic = topic.new
@character = character.find(params[:id]) (le menu est contextuel et me
donne en parametre l’id du personnage principal)
@characters = Character.find(:all, :conditions => [“id != ?”,
params[:id].to_i]) Cela me donne la liste de tous les personnages
pouvant être potentiellement partenaire du personnage propriétaire du
topic (en gros, tout le monde sauf le personnage principal)
Maintenant ma vue :
j’ai créé une form : form.html.erb qui a le look suivant :
…
Partners
<% for character in @characters %>
<% f.check_box ù> <== c'est là ou je ne sais pas gérer
<%= h(character.firstname+' '+character.name %<
<% end %>
...
Ma question est donc la suivante :
Comment gérer proprement une liste de partenaires via des check box ?
Sachant, qu’étant débutant en Ruby On Rails, je ne sais pas où il faut
gérer cela dans la form ? dans la méthode du controller ?
Et sachant aussi, que je vais avoir le même problème à l’édition d’un
topic si les partenaires changent, d’où suppression des entrées ad hoc
dans la table partners, gestion des checkbox, etc…
Merci d’avance pour vos réponses, et bonne journée à tous !