Sha256: 2a966bdfe8e7036e7663cf2055bee4e8a31b94523c2186124e1429707212abea

Contents?: true

Size: 1.5 KB

Versions: 4

Compression:

Stored size: 1.5 KB

Contents

# -*- coding: utf-8 -*-
# destroyメソッドに注意。モバイル対応&テキストリンク利用のためイレギュラーなことをしている
# restに対応した形を徹底したい場合は、削除確認ページへのリンクを以下の様に、formにする
# <%= form_tag(Project_path(project, :mode => "draft"), :method=>:delete) do %><%= submit_tag "delete", :name => "delete" %><% end %>

class ProjectsController < ApplicationController
  def index
    @projects = Project.order("created_at desc").all
  end

  def show
    @project = Project.find(params[:id])
    render "destroy" if params[:mode] == "draft"
  end

  def new
    @project = Project.new(params[:project])
  end

  def edit
    @project = Project.find(params[:id])
  end

  def create
    @project = Project.new(params[:project])
    save
  end

  def update
    @project = Project.find(params[:id])
    @project.attributes = params[:project]
    save
  end

  def destroy
    @project = Project.find(params[:id])
    if params.key?("back")
      redirect_to(project_url)
    elsif params[:mode] != "draft"
      @project.destroy
      redirect_to(project_url, :notice => "deleted success.")
    end
  end

  
  private
  def save
    if !params.key?("back") && @project.valid?
      if params[:mode] == "draft"
        render :action => 'confirm'
      else
        @project.save!
        redirect_to project_path(@project), :notice => 'saved success.'
      end
    else
      render (@project.new_record? ? :new : :edit)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
railstar-0.0.9 test/dummy/app/controllers/projects_controller.rb
railstar-0.0.8 test/dummy/app/controllers/projects_controller.rb
railstar-0.0.7 test/dummy/app/controllers/projects_controller.rb
railstar-0.0.6 test/dummy/app/controllers/projects_controller.rb