Sha256: 1b31bcd10d01ccb477a15fda8ab3189e76c195b1ce728a945d094f0848a306b5

Contents?: true

Size: 1.63 KB

Versions: 3

Compression:

Stored size: 1.63 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
    @search = Search::Project.new(params[:search])
    @projects = @search.base.joins("inner join tasks on tasks.project_id = projects.id").order("created_at desc").group("projects.id").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

3 entries across 3 versions & 1 rubygems

Version Path
railstar-0.0.12 test/dummy/app/controllers/projects_controller.rb
railstar-0.0.11 test/dummy/app/controllers/projects_controller.rb
railstar-0.0.10 test/dummy/app/controllers/projects_controller.rb