fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > 掲示板を作ってみる・その7【スレッド用コントローラを編集】

 ← 掲示板を作ってみる・その8【レス用コントローラを編集】 | TOP | 掲示板を作ってみる・その6【ヘルパを作る】

掲示板を作ってみる・その7【スレッド用コントローラを編集】 

2008年08月07日 ()

掲示板を作ってみる・その1【何を作るの?】
掲示板を作ってみる・その2【モデルを作る パート1】
掲示板を作ってみる・その3【モデルを作る パート2】
掲示板を作ってみる・その4【ルーティングを考える】
掲示板を作ってみる・その5【コントローラを生成】
掲示板を作ってみる・その6【ヘルパを作る】
掲示板を作ってみる・その7【スレッド用コントローラを編集】
掲示板を作ってみる・その8【レス用コントローラを編集】
掲示板を作ってみる・その9【レイアウトファイルとスタイルシートファイルを作成】
掲示板を作ってみる・その10【スレッド用のビューファイルを作成】
掲示板を作ってみる・その11【レス用のビューファイルを作成】
掲示板を作ってみる・その12【ruby-gettext で日本語化】




スレッド用コントローラを編集しましょう。いきなりソースコード。

app/controllers/topic_controller.rb

class TopicController < ApplicationController
  before_filter :set_default_html_title

  def list
    @topics = Topic.age_date_desc
  end

  def create
    @topic = Topic.new(params[:topic])
    @post = Post.new(params[:post])
    Topic.transaction do
      @topic.age_time = Time.now
      @topic.save!

      @post.topic_id = @topic.id
      @post.res_no = 1 #1レス目
      @post.ip_address = request.remote_ip
      @post.save!
    end
    flash[:msg] = '新しいスレが立ちました'
    @topics = Topic.age_date_desc
    render :action => 'list'
  rescue
    @topics = Topic.age_date_desc
    @html_title = 'ERROR'
    render :action => 'list'
  end

private
  def set_default_html_title
    @html_title = 'スレ一覧と作成とヒロシとキーボー'
  end
end



・list メソッド
スレッド一覧な訳ですね。アゲ日時が新しい順から表示してみます。model ファイルで定義した named_scope がここで活きてくる訳です。

・create メソッド
スレッドを立ち上げがら、実は1レス目を書き込むことになりますので、Topic(スレッド) も Post(レス) も新規作成するようになります。
無事スレが立ち上がったら list のビューファイルを表示します。
もしエラーだったら rescue されて、list のビューファイルを表示します。

・set_default_html_title メソッド
@html_title には、<html><head><title>ここに入れるタイトル</title></head> を定義します。詳しくは後で作成する layout ファイルを見てください。
で、before_filter に、:set_default_html_title が指定されているので、この controller の list メソッドや create メソッドを呼ぶ前に、必ず set_default_html_title メソッドが呼ばれます。

説明粗くてスマソ。

おしまい。次回へ続く


【広告】

[2008.08.07(Thu) 11:23] 掲示板アプリTrackback(0) | Comments(0)
↑TOPへ

 ← 掲示板を作ってみる・その8【レス用コントローラを編集】 | TOP | 掲示板を作ってみる・その6【ヘルパを作る】

COMMENT

COMMENT POST















管理者にだけ表示

 ← 掲示板を作ってみる・その8【レス用コントローラを編集】 | TOP | 掲示板を作ってみる・その6【ヘルパを作る】