Forum: Rails France Réaliser un forum avec RoR

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Mun (Guest)
on 2007-02-28 17:26
Bonjour,

En fait je cherche surtout à integrer le model MVC, et essai de réaliser
pour cela un petit forum.

Pour l'instant j'ai 4 tables dans ma bdd: utilisateurs, forums, sujets,
messages

J'ai organisé mes données selon forums has_many sujets has_many messages

Deplus pour l'instant, en suivant le cookbook, j'ai crée un controlleur
forum, un controlleur sujet, et un controlleur message.

L'un s'occupe de lister les forums, le suivant s'occupe de lister les
sujets d'un forum, le dernier affichant les messages d'un sujet.


Mes question sont:

- J'aimerais savoir si, et comment on peut préciser à rails que les
utilisateurs sont inscrits au forum et postent des messages. Ceci afin
de faciliter l'affichage d'information pour chaque message à propos de
son auteur.

-Dans ma table sujet, je n'ai pas de champ pour le premier message. Donc
si je veux poster un nouveau sujet, je dois créer un nouveau sujet ainsi
qu'un nouveau message. Est-ce judicieux dans la mesure où j'ai 2
controlleurs differents pour les messages et les sujets. J'ai en effet
l'impression que le controlleur sujet empiète dans ce cas sur le role du
controlleur message, et que ce n'est pas dans l'esprit MVC.

-Est-ce judicieux tout betement de séparer les controleurs de cette
manière. J'aurais ptet pu faire un controlleur forum et un controlleur
sujet/message.

-Quelle est la meilleure méthode pour passer les informations de
l'arboréscence dans laquelle se trouve l'utilisateur. Pour être plus
clair, quel est le meilleur endroit pour garder l'identificateur du
forum ou du sujet dans lequel on se trouve, quand on est par exemple
dans la page de création d'une réponse à un sujet.

-Dans quels cas les paramètres sont passé par la bare d'adresse avec un
/, avec un ?, où par la méthode POST.

-Y'a t'il enfin un bon site qui pourait m'éclairer sur la signification
et l'utilisation des differents types de variables, celles avec des @,
de : ... et leur utilisation avec rails.

Je suis dsl pour la longueur, et je vous remerci d'avance.
Guillaume B. (Guest)
on 2007-02-28 18:08
(Received via mailing list)
salut !

qques réponses...

> Deplus pour l'instant, en suivant le cookbook, j'ai crée un controlleur
> forum, un controlleur sujet, et un controlleur message.

A la limite j'aurai vu ça sous un seul controleur "forum". Un 2e
controleur
aurait pu etre admin (ce qui permettra d'ajouter et supprimer des
forums, gérer
les utilisateurs...)

> - J'aimerais savoir si, et comment on peut préciser à rails que les
> utilisateurs sont inscrits au forum et postent des messages.

message belongs_to utilisateur, et un utilisateur_id dans la table des
messages.

si tu veux faire une inscription, alors tu te crée une nouvelle entité
Inscription, avec Inscription belongs_to forum, Inscription belongs_to
utilisateur, utilisateur has_many inscriptions et forum has_many
utilisateurs.

la table inscriptions sera uniquement faite de utilisateur_id et de
forum_id

> Est-ce judicieux dans la mesure où j'ai 2 controlleurs differents pour les messages et 
les sujets.

cf plus haut ?

> -Quelle est la meilleure méthode pour passer les informations de
> l'arboréscence dans laquelle se trouve l'utilisateur. Pour être plus
> clair, quel est le meilleur endroit pour garder l'identificateur du
> forum ou du sujet dans lequel on se trouve, quand on est par exemple
> dans la page de création d'une réponse à un sujet.

je comprends pas trop ton soucis, le grand classique devrait suffire :
l'id dans
l'URL. quand on est en train d'afficher un message par exemple, l'id
suffit à
désigner le message, et si on veut le sujet, on fait tout simplement
message.sujet.intitule, ou l'auteur du sujet, on fait
message.sujet.auteur.nom
etc...

pour la suite, je préfère laisser parler ceux qui connaissent mieux
Rails que moi...

gUI
Nicolas T. (Guest)
on 2007-02-28 19:47
(Received via mailing list)
On 2/28/07, Mun <removed_email_address@domain.invalid> wrote:
> -Dans ma table sujet, je n'ai pas de champ pour le premier message. Donc
> si je veux poster un nouveau sujet, je dois créer un nouveau sujet ainsi
> qu'un nouveau message. Est-ce judicieux dans la mesure où j'ai 2
> controlleurs differents pour les messages et les sujets. J'ai en effet
> l'impression que le controlleur sujet empiète dans ce cas sur le role du
> controlleur message, et que ce n'est pas dans l'esprit MVC.
>

forums(id, titre, description)
forums_messages(forum_id, message_id)
messages(id, titre, body, created_at, parent_id)

class Message < ActiveRecord::Base
   acts_as_tree :order => 'created_at'   #ou acts_as_list?
end

class Forum < ActiveRecord::Base
   has_and_belongs_to_many :subjects, :class_name => 'Message'
end

?
Patrick A. (Guest)
on 2007-02-28 21:14
(Received via mailing list)
On 2/28/07, Nicolas T. <removed_email_address@domain.invalid> wrote:
> class Message < ActiveRecord::Base
>    acts_as_tree :order => 'created_at'   #ou acts_as_list?
> end
sinon il y a aussi acts_as_threaded:

http://www.railtie.net/articles/2006/02/05/rails-a...
Mun (Guest)
on 2007-03-01 19:42
Bon, j'ai tout mis dans un seul controlleur pour essayer.

Je me suis même aventuré à utiliser la même méthode pour la création
d'un nouveau sujet et celle d'une réponse en faisant (voire suite). Ya
un peu de gymnastique (pour mon niveau), ben J'ai rien eut à débuguer.
Des fois, il me manque une méthode, j'en éssai une, et tout marche du
premier coup, c'est vraiment surprenant !!

Je venais de commencer le PHP depuis 2 heures quand mon père m'est tombé
dessus en m'expliquant combien le PHP ca pue et que je devrais essayer
ca.

<h3>Nouvelle reponse</h3>

<% form_tag :action => 'create_from_a_' + params[:parent], :id =>
@params[:id]  do %>
<%= text_field 'sujet', 'titre' if @sujet  %>
<%= text_area 'message', 'contenu'  %>
<%= submit_tag "Create" %>
<% end %>

<%= link_to 'Retour', :action => 'view_' + params[:parent], :id =>
params[:id] %>

class ForumController < ApplicationController

[...]


  def new
    @message = Message.new
    @sujet = Sujet.new unless params[:parent] != 'forum'
  end

  def create_from_a_sujet
    @message = Message.new(params[:message])
    @message.date = Date.today
    @message.user_id = session[:user_id]
    @message.sujet_id = @params["id"]

    if @message.save
      flash[:notice] = 'Message was successfully created.'
      redirect_to :action => 'view_sujet', :id => params[:id]
    else
      render :action => 'new', :id => params[:id]
    end
  end

  def create_from_a_forum
    @sujet = Sujet.new(params[:sujet])
    @sujet.date = Date.today
    @sujet.user_id = session[:user_id]
    @sujet.forum_id = @params["id"]

    if @sujet.save
      @message = Message.new(params[:message])
      @message.date = Date.today
      @message.user_id = session[:user_id]
      @message.sujet_id = @sujet.id

      if @message.save
        flash[:notice] = 'Sujet was successfully created.'
        redirect_to :action => 'view_sujet', :id => @sujet.id
      else
        @sujet.destroy
        render :action => 'new', :id => params[:id]
      end
    else
      render :action => 'new', :id => params[:id]
    end
  end

end
Jilo J. (Guest)
on 2007-12-04 10:29
ONLINE JOB FAIR 2008 - WWW.JOBSINWORLD.COM
SEARCH JOBS IN OUTSIDE INDIA, KERALA, CHENNAI, MUMBAI, BANGLORE, PUNE
AND HYDRABAD
<a href="www.jobsinworld.com">Online jobfair</a>
Jilo J. (Guest)
on 2007-12-04 10:30
Jilo J. wrote:
>
> ONLINE JOB FAIR 2008 - WWW.JOBSINWORLD.COM
> SEARCH JOBS IN OUTSIDE INDIA, KERALA, CHENNAI, MUMBAI, BANGLORE, PUNE
> AND HYDRABAD
> http://www.jobsinworld.com
TslH (Guest)
on 2007-12-04 11:43
(Received via mailing list)
Il faut croire que nos amis d'andreas-s.net ont un petit problème de
spam...

2007/12/4, Jilo J. <removed_email_address@domain.invalid>:
This topic is locked and can not be replied to.