万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

■Rails3で資格試験勉強システムを作る
◯ログイン機能
参考にした
http://d.hatena.ne.jp/koyonote/20110422/1303474235

→編集するファイル
app/views/users/_form.html.erb

<%= radio_button_tag カラム名, サーバに送る値, options = {}) %>表示名称

"サーバに送る値"は選んだ時にtrueとかfalseになるようにする
optionsはtrueになるかfalseになるような式を入れる。


・Sessionsコントローラーの「new.html.erb」を編集して、ログインフォームを作ります。
※sessionのコントローラーってことに注意、userのではない
→「new.html.erb」のファイル名は変更しない


レイアウトの変更
→これを編集
「layouts/application.html.erb」

・route.rb
元々のこいつらはコメントアウト

#  get "sessions/new"
#  get "sessions/create"
#  get "sessions/destroy"

これはコメントアウトしていいかわらかないので放置??

resources :users

・◯◯_urlが意味分からんと思ったが、

  redirect_to hoge_url

http://d.hatena.ne.jp/sgtakeru/20091118/1258528315

・ページの一番最後にあるのをbefore_filterのそのままだとどのページ(index)にもいけなくなる

before_filter :authorize, :only => [:create, :destroy]

・SessionsController(sessions_controller.rb)のnewアクションを修正する。そうしないと、手でhttp://localhost:3000/loginに入ったときにログイン画面になってしまいます。

  def new
    if session[:user_id]
      redirect_to users_url
    end
  end

・createのアクションが違うようだ
→ユーザ名だけあってればそのままいっちゃう

N/A

  def create
    if user = User.find_by_name(params[:name])
      if user.password == params[:password]
        session[:user_id] = user.id
        redirect_to users_url
      end
    else
      redirect_to login_url, :notice => "Invalid!"
    end
  end

OK

  def create
    if user = User.find_by_name(params[:name]) and
       user.password == params[:password]
      session[:user_id] = user.id
      redirect_to users_url
    else
      redirect_to login_url, :notice => "Invalid!"
    end
  end

Rails 3.0 + jQuery をする
http://d.hatena.ne.jp/spitfire_tree/20101114/1289707759

◯ルーティング定義
http://d.hatena.ne.jp/willnet/20100424/1272119369

I18n について
http://d.hatena.ne.jp/willnet/20100430/1272618929

◯CBT画面の参考
http://yakujuku.com/cbt/cbt04.html
http://bken.sgec.or.jp/student/practice.html