From feb79d6fc01fb386f4235ef82b03bb66636446d7 Mon Sep 17 00:00:00 2001
From: tazumetoshia01
Date: Fri, 15 Jun 2012 15:32:31 +0900
Subject: [PATCH 1/2] make detail memo
---
app/assets/javascripts/detailmemos.js.coffee | 3 +
app/assets/stylesheets/detailmemos.css.scss | 3 +
app/controllers/books_controller.rb | 8 ++
app/controllers/detailmemos_controller.rb | 43 ++++++++
app/controllers/detailmemos_controller.rb.bk | 86 ++++++++++++++++
app/helpers/detailmemos_helper.rb | 2 +
app/models/book.rb | 1 +
app/models/detailmemo.rb | 4 +
app/views/books/show.html.erb | 13 +++
app/views/detailmemos/_form.html.erb | 24 +++++
app/views/detailmemos/edit.html.erb | 5 +
app/views/detailmemos/new.html.erb | 5 +
app/views/detailmemos/show.html.erb | 15 +++
config/routes.rb | 3 +-
.../20120614162548_create_detailmemos.rb | 10 ++
db/schema.rb | 9 +-
.../detailmemos_controller_spec.rb | 96 ++++++++++++++++++
spec/factories/detailmemos.rb | 8 ++
spec/helpers/detailmemos_helper_spec.rb | 15 +++
spec/models/.detailmemo_spec.rb.swp | Bin 0 -> 12288 bytes
spec/models/detailmemo_spec.rb | 16 +++
spec/requests/detailmemos_spec.rb | 53 ++++++++++
spec/routing/detailmemos_routing_spec.rb | 35 +++++++
spec/views/detailmemos/new.html.erb_spec.rb | 20 ++++
24 files changed, 475 insertions(+), 2 deletions(-)
create mode 100644 app/assets/javascripts/detailmemos.js.coffee
create mode 100644 app/assets/stylesheets/detailmemos.css.scss
create mode 100644 app/controllers/detailmemos_controller.rb
create mode 100644 app/controllers/detailmemos_controller.rb.bk
create mode 100644 app/helpers/detailmemos_helper.rb
create mode 100644 app/models/detailmemo.rb
create mode 100644 app/views/detailmemos/_form.html.erb
create mode 100644 app/views/detailmemos/edit.html.erb
create mode 100644 app/views/detailmemos/new.html.erb
create mode 100644 app/views/detailmemos/show.html.erb
create mode 100644 db/migrate/20120614162548_create_detailmemos.rb
create mode 100644 spec/controllers/detailmemos_controller_spec.rb
create mode 100644 spec/factories/detailmemos.rb
create mode 100644 spec/helpers/detailmemos_helper_spec.rb
create mode 100644 spec/models/.detailmemo_spec.rb.swp
create mode 100644 spec/models/detailmemo_spec.rb
create mode 100644 spec/requests/detailmemos_spec.rb
create mode 100644 spec/routing/detailmemos_routing_spec.rb
create mode 100644 spec/views/detailmemos/new.html.erb_spec.rb
diff --git a/app/assets/javascripts/detailmemos.js.coffee b/app/assets/javascripts/detailmemos.js.coffee
new file mode 100644
index 0000000..7615679
--- /dev/null
+++ b/app/assets/javascripts/detailmemos.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/stylesheets/detailmemos.css.scss b/app/assets/stylesheets/detailmemos.css.scss
new file mode 100644
index 0000000..fd6c97a
--- /dev/null
+++ b/app/assets/stylesheets/detailmemos.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the detailmemos controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/books_controller.rb b/app/controllers/books_controller.rb
index d13ffd9..150b515 100644
--- a/app/controllers/books_controller.rb
+++ b/app/controllers/books_controller.rb
@@ -1,5 +1,6 @@
class BooksController < ApplicationController
before_filter :find_book, :only => [:show, :destroy, :edit, :update]
+ before_filter :find_memo, :only => :show
# GET /books
# GET /books.json
@@ -89,4 +90,11 @@ def destroy
def find_book
@book = Book.find(params[:id])
end
+
+ private
+ def find_memo
+ @memos = Detailmemo.find_all_by_book_id(params[:id])
+ p @memos
+ end
+
end
diff --git a/app/controllers/detailmemos_controller.rb b/app/controllers/detailmemos_controller.rb
new file mode 100644
index 0000000..0e011f3
--- /dev/null
+++ b/app/controllers/detailmemos_controller.rb
@@ -0,0 +1,43 @@
+class DetailmemosController < ApplicationController
+ # GET /detailmemos/new
+ # GET /detailmemos/new.json
+ def new
+ @test = request.headers['Referer']
+ p @test
+ p params
+ @detailmemo = Detailmemo.new
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.json { render json: @detailmemo }
+ end
+ end
+
+ # POST /detailmemos
+ # POST /detailmemos.json
+ def create
+ @detailmemo = Detailmemo.new(params[:detailmemo])
+
+ respond_to do |format|
+ if @detailmemo.save
+ format.html { redirect_to Book, notice: 'Detailmemo was successfully created.' }
+ format.json { render json: @detailmemo, status: :created, location: @detailmemo }
+ else
+ format.html { render action: "new" }
+ format.json { render json: @detailmemo.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /detailmemos/1
+ # DELETE /detailmemos/1.json
+ def destroy
+ @detailmemo = Detailmemo.find(params[:id])
+ @detailmemo.destroy
+
+ respond_to do |format|
+ format.html { redirect_to book_path(@detailmemo[:book_id]) }
+ format.json { head :no_content }
+ end
+ end
+end
diff --git a/app/controllers/detailmemos_controller.rb.bk b/app/controllers/detailmemos_controller.rb.bk
new file mode 100644
index 0000000..0e1cc9d
--- /dev/null
+++ b/app/controllers/detailmemos_controller.rb.bk
@@ -0,0 +1,86 @@
+class DetailmemosController < ApplicationController
+ # GET /detailmemos
+ # GET /detailmemos.json
+ def index
+ @detailmemos = Detailmemo.all
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @detailmemos }
+ end
+ end
+
+ # GET /detailmemos/1
+ # GET /detailmemos/1.json
+ def show
+ @detailmemo = Detailmemo.find(params[:id])
+
+ respond_to do |format|
+ format.html { redirect_to(Book)}# show.html.erb
+ format.json { render json: @detailmemo }
+ end
+ end
+
+ # GET /detailmemos/new
+ # GET /detailmemos/new.json
+ def new
+ @test = request.headers['Referer']
+ p @test
+ p params
+ @detailmemo = Detailmemo.new
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.json { render json: @detailmemo }
+ end
+ end
+
+ # GET /detailmemos/1/edit
+ def edit
+ @detailmemo = Detailmemo.find(params[:id])
+ end
+
+ # POST /detailmemos
+ # POST /detailmemos.json
+ def create
+ @detailmemo = Detailmemo.new(params[:detailmemo])
+
+ respond_to do |format|
+ if @detailmemo.save
+ format.html { redirect_to Book, notice: 'Detailmemo was successfully created.' }
+ format.json { render json: @detailmemo, status: :created, location: @detailmemo }
+ else
+ format.html { render action: "new" }
+ format.json { render json: @detailmemo.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # PUT /detailmemos/1
+ # PUT /detailmemos/1.json
+ def update
+ @detailmemo = Detailmemo.find(params[:id])
+
+ respond_to do |format|
+ if @detailmemo.update_attributes(params[:detailmemo])
+ format.html { redirect_to Book, notice: 'Detailmemo was successfully updated.' }
+ format.json { head :no_content }
+ else
+ format.html { render action: "edit" }
+ format.json { render json: @detailmemo.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /detailmemos/1
+ # DELETE /detailmemos/1.json
+ def destroy
+ @detailmemo = Detailmemo.find(params[:id])
+ @detailmemo.destroy
+
+ respond_to do |format|
+ format.html { redirect_to books_url }
+ format.json { head :no_content }
+ end
+ end
+end
diff --git a/app/helpers/detailmemos_helper.rb b/app/helpers/detailmemos_helper.rb
new file mode 100644
index 0000000..098faaf
--- /dev/null
+++ b/app/helpers/detailmemos_helper.rb
@@ -0,0 +1,2 @@
+module DetailmemosHelper
+end
diff --git a/app/models/book.rb b/app/models/book.rb
index 95c42dd..476d80b 100644
--- a/app/models/book.rb
+++ b/app/models/book.rb
@@ -1,5 +1,6 @@
# encoding: UTF-8
class Book < ActiveRecord::Base
+ has_many :detailmemos
attr_accessible :memo, :purchased_on, :title
validates :title, :presence => true
diff --git a/app/models/detailmemo.rb b/app/models/detailmemo.rb
new file mode 100644
index 0000000..be88f00
--- /dev/null
+++ b/app/models/detailmemo.rb
@@ -0,0 +1,4 @@
+class Detailmemo < ActiveRecord::Base
+ validates :memo, :length => { :maximum => 100}
+ attr_accessible :book_id, :memo
+end
diff --git a/app/views/books/show.html.erb b/app/views/books/show.html.erb
index 23005ab..c5776c6 100644
--- a/app/views/books/show.html.erb
+++ b/app/views/books/show.html.erb
@@ -9,6 +9,19 @@
Memo:
<%= @book.memo %>
+<% if @memos %>
+ <% for memo in @memos %>
+
+ <%= memo.memo %>
+ <%= link_to 'Delete', memo,:controller => 'detailmemos', :action => 'destroy', :method => :delete %>
+
+ <% end %>
+<% end %>
+
+
+<%= link_to('Add Memo', :controller => 'detailmemos', :action => 'new',
+ :bookid => @book) %>
+
Purchased on:
diff --git a/app/views/detailmemos/_form.html.erb b/app/views/detailmemos/_form.html.erb
new file mode 100644
index 0000000..d78060e
--- /dev/null
+++ b/app/views/detailmemos/_form.html.erb
@@ -0,0 +1,24 @@
+<%= form_for(@detailmemo) do |f| %>
+ <% if @detailmemo.errors.any? %>
+
+
<%= pluralize(@detailmemo.errors.count, "error") %> prohibited this detailmemo from being saved:
+
+
+ <% @detailmemo.errors.full_messages.each do |msg| %>
+ - <%= msg %>
+ <% end %>
+
+
+ <% end %>
+
+
+ <%= f.hidden_field(:book_id,:value => params[:bookid])%>
+
+
+ <%= f.label :memo %>
+ <%= f.text_area :memo %>
+
+
+ <%= f.submit %>
+
+<% end %>
diff --git a/app/views/detailmemos/edit.html.erb b/app/views/detailmemos/edit.html.erb
new file mode 100644
index 0000000..a1d64b2
--- /dev/null
+++ b/app/views/detailmemos/edit.html.erb
@@ -0,0 +1,5 @@
+Editing detailmemo
+
+<%= render 'form' %>
+
+<%= link_to 'Back', book_path %>
diff --git a/app/views/detailmemos/new.html.erb b/app/views/detailmemos/new.html.erb
new file mode 100644
index 0000000..1b61be7
--- /dev/null
+++ b/app/views/detailmemos/new.html.erb
@@ -0,0 +1,5 @@
+New detailmemo
+
+<%= render 'form' %>
+
+<%= link_to 'Back', books_path %>
diff --git a/app/views/detailmemos/show.html.erb b/app/views/detailmemos/show.html.erb
new file mode 100644
index 0000000..2cc5eb5
--- /dev/null
+++ b/app/views/detailmemos/show.html.erb
@@ -0,0 +1,15 @@
+<%= notice %>
+
+
+ Book:
+ <%= @detailmemo.book_id %>
+
+
+
+ Memo:
+ <%= @detailmemo.memo %>
+
+
+
+<%= link_to 'Edit', edit_detailmemo_path(@detailmemo) %> |
+<%= link_to 'Back', books_path %>
diff --git a/config/routes.rb b/config/routes.rb
index f3d38ab..4568152 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,6 +1,7 @@
BookMemo2::Application.routes.draw do
- resources :books
+ resources :detailmemos
+ resources :books
# The priority is based upon order of creation:
# first created -> highest priority.
diff --git a/db/migrate/20120614162548_create_detailmemos.rb b/db/migrate/20120614162548_create_detailmemos.rb
new file mode 100644
index 0000000..2c747d6
--- /dev/null
+++ b/db/migrate/20120614162548_create_detailmemos.rb
@@ -0,0 +1,10 @@
+class CreateDetailmemos < ActiveRecord::Migration
+ def change
+ create_table :detailmemos do |t|
+ t.integer :book_id
+ t.text :memo
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 5fc61c2..63e5926 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20120526050801) do
+ActiveRecord::Schema.define(:version => 20120614162548) do
create_table "books", :force => true do |t|
t.string "title"
@@ -21,4 +21,11 @@
t.datetime "updated_at", :null => false
end
+ create_table "detailmemos", :force => true do |t|
+ t.integer "book_id"
+ t.text "memo"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
end
diff --git a/spec/controllers/detailmemos_controller_spec.rb b/spec/controllers/detailmemos_controller_spec.rb
new file mode 100644
index 0000000..5bcda58
--- /dev/null
+++ b/spec/controllers/detailmemos_controller_spec.rb
@@ -0,0 +1,96 @@
+require 'spec_helper'
+
+# This spec was generated by rspec-rails when you ran the scaffold generator.
+# It demonstrates how one might use RSpec to specify the controller code that
+# was generated by Rails when you ran the scaffold generator.
+#
+# It assumes that the implementation code is generated by the rails scaffold
+# generator. If you are using any extension libraries to generate different
+# controller code, this generated spec may or may not pass.
+#
+# It only uses APIs available in rails and/or rspec-rails. There are a number
+# of tools you can use to make these specs even more expressive, but we're
+# sticking to rails and rspec-rails APIs to keep things simple and stable.
+#
+# Compared to earlier versions of this generator, there is very limited use of
+# stubs and message expectations in this spec. Stubs are only used when there
+# is no simpler way to get a handle on the object needed for the example.
+# Message expectations are only used when there is no simpler way to specify
+# that an instance is receiving a specific message.
+
+describe DetailmemosController do
+
+ # This should return the minimal set of attributes required to create a valid
+ # Detailmemo. As you add validations to Detailmemo, be sure to
+ # update the return value of this method accordingly.
+ def valid_attributes
+ {}
+ end
+
+ # This should return the minimal set of values that should be in the session
+ # in order to pass any filters (e.g. authentication) defined in
+ # DetailmemosController. Be sure to keep this updated too.
+ def valid_session
+ {}
+ end
+
+ describe "GET new" do
+ it "assigns a new detailmemo as @detailmemo" do
+ get :new, {}, valid_session
+ assigns(:detailmemo).should be_a_new(Detailmemo)
+ end
+ end
+
+ describe "POST create" do
+ describe "with valid params" do
+ it "creates a new Detailmemo" do
+ expect {
+ post :create, {:detailmemo => valid_attributes}, valid_session
+ }.to change(Detailmemo, :count).by(1)
+ end
+
+ it "assigns a newly created detailmemo as @detailmemo" do
+ post :create, {:detailmemo => valid_attributes}, valid_session
+ assigns(:detailmemo).should be_a(Detailmemo)
+ assigns(:detailmemo).should be_persisted
+ end
+
+ it "redirects to the created detailmemo" do
+ post :create, {:detailmemo => valid_attributes}, valid_session
+ response.should redirect_to(Book)
+ end
+ end
+
+ describe "with invalid params" do
+ it "assigns a newly created but unsaved detailmemo as @detailmemo" do
+ # Trigger the behavior that occurs when invalid params are submitted
+ Detailmemo.any_instance.stub(:save).and_return(false)
+ post :create, {:detailmemo => {}}, valid_session
+ assigns(:detailmemo).should be_a_new(Detailmemo)
+ end
+
+ it "re-renders the 'new' template" do
+ # Trigger the behavior that occurs when invalid params are submitted
+ Detailmemo.any_instance.stub(:save).and_return(false)
+ post :create, {:detailmemo => {}}, valid_session
+ response.should render_template("new")
+ end
+ end
+ end
+
+ describe "DELETE destroy" do
+ it "destroys the requested detailmemo" do
+ detailmemo = Detailmemo.create! valid_attributes
+ expect {
+ delete :destroy, {:id => detailmemo.to_param}, valid_session
+ }.to change(Detailmemo, :count).by(-1)
+ end
+
+ it "redirects to the detailmemos list" do
+ detailmemo = Detailmemo.create! valid_attributes
+ delete :destroy, {:id => detailmemo.to_param}, valid_session
+ response.should redirect_to(book_path(1))
+ end
+ end
+
+end
diff --git a/spec/factories/detailmemos.rb b/spec/factories/detailmemos.rb
new file mode 100644
index 0000000..baea5e9
--- /dev/null
+++ b/spec/factories/detailmemos.rb
@@ -0,0 +1,8 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :detailmemo do
+ book_id 1
+ sequence(:memo) { |n| "MyText_#{n}" }
+ end
+end
diff --git a/spec/helpers/detailmemos_helper_spec.rb b/spec/helpers/detailmemos_helper_spec.rb
new file mode 100644
index 0000000..8d162bb
--- /dev/null
+++ b/spec/helpers/detailmemos_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+# Specs in this file have access to a helper object that includes
+# the DetailmemosHelper. For example:
+#
+# describe DetailmemosHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# helper.concat_strings("this","that").should == "this that"
+# end
+# end
+# end
+describe DetailmemosHelper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/.detailmemo_spec.rb.swp b/spec/models/.detailmemo_spec.rb.swp
new file mode 100644
index 0000000000000000000000000000000000000000..497d532dc808da0c20a0f49c60732c9c9da8e36f
GIT binary patch
literal 12288
zcmeI&KW@}O6bA4KJpn-h6?!;D5~N*wlOhNyp$VW!AVdKTg*EoPutRK*nHh&DQ4m*1
zkpfY03U0s&D7is61n`_igcMsuf@bxN^sVjrW4-xxYfX{8*m^>1!&N2is#4Fse0%!o
z(Y$&&QYz~GuIA{%*y>E4r?vC*2D{eBPFI6kmt))T*{XNvC#HdG+i0H_&h6wi*KQ>Z
zEthHS3|ApF9JQ_b{=DxV`r_}N&f+${|4~=ic%+%uaXav_mUmSn&g(`rsRg?hpah~e3pEa97|5$Gb1+G1_U4g
z0SG_<0uX=z1Rwwb2>eF@Zj2(D{1Vwn2NcGxs|*#KZ|f@Xp^OuSu6WI5KfL+pocOTe
zw@df>6XUeLLH%`kxT`B`?oZZCMkvt<-Jy{jX(uXO6L~LE(lv&?bY=+|r(|SG3DI}|
zu7YfO1w^e>V4GJ`t}zr`&BS}UZYvHH9W6Oea!j5hFVn(7o(g=VPu~_KWHl3yrf^
literal 0
HcmV?d00001
diff --git a/spec/models/detailmemo_spec.rb b/spec/models/detailmemo_spec.rb
new file mode 100644
index 0000000..d617f40
--- /dev/null
+++ b/spec/models/detailmemo_spec.rb
@@ -0,0 +1,16 @@
+require 'spec_helper'
+
+describe Detailmemo do
+ pending "add some examples to (or delete) #{__FILE__}"
+ context "under 100" do
+ memo = "a" * 100
+ subject { Detailmemo.new(:memo => memo).valid?}
+ it { should be_true}
+ end
+
+ context "under 100" do
+ memo = "a" * 101
+ subject { Detailmemo.new(:memo => memo).valid?}
+ it { should be_false}
+ end
+end
diff --git a/spec/requests/detailmemos_spec.rb b/spec/requests/detailmemos_spec.rb
new file mode 100644
index 0000000..7c7d797
--- /dev/null
+++ b/spec/requests/detailmemos_spec.rb
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+require 'spec_helper'
+
+describe "Detailmemos" do
+
+ describe '/books/:book_id/' do
+ let!(:book){ FactoryGirl.create :book }
+ let!(:detailmemo){ FactoryGirl.create :detailmemo }
+ subject { page }
+
+ before { visit "/books/#{book.id}" }
+ it "show Add Memo link" do
+ page.should have_css("#add_memo",:text => "Add Memo")
+ end
+
+ context "write memo1" do
+ let(:memo_data){ 'memo test 1' }
+
+ before do
+ click_on 'Add Memo'
+ fill_in "detailmemo_memo", with: memo_data
+ click_on 'Create Detailmemo'
+ end
+
+ it "page is moved" do
+ current_path.should == books_path
+ end
+
+ it "memo1 is exist" do
+ visit "/books/#{book.id}"
+ page.should have_content(memo_data)
+ end
+ end
+ context "write memo2" do
+ let(:memo_data){ 'memo test 2' }
+
+ before do
+ click_on 'Add Memo'
+ fill_in "detailmemo_memo", with: memo_data
+ click_on 'Create Detailmemo'
+ end
+
+ it "page is moved" do
+ current_path.should == books_path
+ end
+
+ it "memo2 is exist" do
+ visit "/books/#{book.id}"
+ page.should have_content(memo_data)
+ end
+ end
+ end
+end
diff --git a/spec/routing/detailmemos_routing_spec.rb b/spec/routing/detailmemos_routing_spec.rb
new file mode 100644
index 0000000..a055df6
--- /dev/null
+++ b/spec/routing/detailmemos_routing_spec.rb
@@ -0,0 +1,35 @@
+require "spec_helper"
+
+describe DetailmemosController do
+ describe "routing" do
+
+ it "routes to #index" do
+ get("/detailmemos").should route_to("detailmemos#index")
+ end
+
+ it "routes to #new" do
+ get("/detailmemos/new").should route_to("detailmemos#new")
+ end
+
+ it "routes to #show" do
+ get("/detailmemos/1").should route_to("detailmemos#show", :id => "1")
+ end
+
+ it "routes to #edit" do
+ get("/detailmemos/1/edit").should route_to("detailmemos#edit", :id => "1")
+ end
+
+ it "routes to #create" do
+ post("/detailmemos").should route_to("detailmemos#create")
+ end
+
+ it "routes to #update" do
+ put("/detailmemos/1").should route_to("detailmemos#update", :id => "1")
+ end
+
+ it "routes to #destroy" do
+ delete("/detailmemos/1").should route_to("detailmemos#destroy", :id => "1")
+ end
+
+ end
+end
diff --git a/spec/views/detailmemos/new.html.erb_spec.rb b/spec/views/detailmemos/new.html.erb_spec.rb
new file mode 100644
index 0000000..58d9478
--- /dev/null
+++ b/spec/views/detailmemos/new.html.erb_spec.rb
@@ -0,0 +1,20 @@
+require 'spec_helper'
+
+describe "detailmemos/new" do
+ before(:each) do
+ assign(:detailmemo, stub_model(Detailmemo,
+ :book_id => 1,
+ :memo => "MyText"
+ ).as_new_record)
+ end
+
+ it "renders new detailmemo form" do
+ render
+
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ assert_select "form", :action => detailmemos_path, :method => "post" do
+ assert_select "input#detailmemo_book_id", :name => "detailmemo[book_id]"
+ assert_select "textarea#detailmemo_memo", :name => "detailmemo[memo]"
+ end
+ end
+end
From bca9817a1de8e87433afaba28de9ce5007a97d54 Mon Sep 17 00:00:00 2001
From: tazumetoshia01
Date: Fri, 15 Jun 2012 15:52:05 +0900
Subject: [PATCH 2/2] add confirm diagram when memo delete
---
app/controllers/detailmemos_controller.rb | 3 -
app/controllers/detailmemos_controller.rb.bk | 86 --------------------
app/views/books/show.html.erb | 13 ++-
3 files changed, 6 insertions(+), 96 deletions(-)
delete mode 100644 app/controllers/detailmemos_controller.rb.bk
diff --git a/app/controllers/detailmemos_controller.rb b/app/controllers/detailmemos_controller.rb
index 0e011f3..efc71f0 100644
--- a/app/controllers/detailmemos_controller.rb
+++ b/app/controllers/detailmemos_controller.rb
@@ -2,9 +2,6 @@ class DetailmemosController < ApplicationController
# GET /detailmemos/new
# GET /detailmemos/new.json
def new
- @test = request.headers['Referer']
- p @test
- p params
@detailmemo = Detailmemo.new
respond_to do |format|
diff --git a/app/controllers/detailmemos_controller.rb.bk b/app/controllers/detailmemos_controller.rb.bk
deleted file mode 100644
index 0e1cc9d..0000000
--- a/app/controllers/detailmemos_controller.rb.bk
+++ /dev/null
@@ -1,86 +0,0 @@
-class DetailmemosController < ApplicationController
- # GET /detailmemos
- # GET /detailmemos.json
- def index
- @detailmemos = Detailmemo.all
-
- respond_to do |format|
- format.html # index.html.erb
- format.json { render json: @detailmemos }
- end
- end
-
- # GET /detailmemos/1
- # GET /detailmemos/1.json
- def show
- @detailmemo = Detailmemo.find(params[:id])
-
- respond_to do |format|
- format.html { redirect_to(Book)}# show.html.erb
- format.json { render json: @detailmemo }
- end
- end
-
- # GET /detailmemos/new
- # GET /detailmemos/new.json
- def new
- @test = request.headers['Referer']
- p @test
- p params
- @detailmemo = Detailmemo.new
-
- respond_to do |format|
- format.html # new.html.erb
- format.json { render json: @detailmemo }
- end
- end
-
- # GET /detailmemos/1/edit
- def edit
- @detailmemo = Detailmemo.find(params[:id])
- end
-
- # POST /detailmemos
- # POST /detailmemos.json
- def create
- @detailmemo = Detailmemo.new(params[:detailmemo])
-
- respond_to do |format|
- if @detailmemo.save
- format.html { redirect_to Book, notice: 'Detailmemo was successfully created.' }
- format.json { render json: @detailmemo, status: :created, location: @detailmemo }
- else
- format.html { render action: "new" }
- format.json { render json: @detailmemo.errors, status: :unprocessable_entity }
- end
- end
- end
-
- # PUT /detailmemos/1
- # PUT /detailmemos/1.json
- def update
- @detailmemo = Detailmemo.find(params[:id])
-
- respond_to do |format|
- if @detailmemo.update_attributes(params[:detailmemo])
- format.html { redirect_to Book, notice: 'Detailmemo was successfully updated.' }
- format.json { head :no_content }
- else
- format.html { render action: "edit" }
- format.json { render json: @detailmemo.errors, status: :unprocessable_entity }
- end
- end
- end
-
- # DELETE /detailmemos/1
- # DELETE /detailmemos/1.json
- def destroy
- @detailmemo = Detailmemo.find(params[:id])
- @detailmemo.destroy
-
- respond_to do |format|
- format.html { redirect_to books_url }
- format.json { head :no_content }
- end
- end
-end
diff --git a/app/views/books/show.html.erb b/app/views/books/show.html.erb
index c5776c6..bd7a1cc 100644
--- a/app/views/books/show.html.erb
+++ b/app/views/books/show.html.erb
@@ -13,21 +13,20 @@
<% for memo in @memos %>
<%= memo.memo %>
- <%= link_to 'Delete', memo,:controller => 'detailmemos', :action => 'destroy', :method => :delete %>
+ <%= link_to 'Delete', memo,:controller => 'detailmemos', :action => 'destroy', confirm: 'Are you sure?', :method => :delete %>
+
<% end %>
<% end %>
-
-<%= link_to('Add Memo', :controller => 'detailmemos', :action => 'new',
- :bookid => @book) %>
-
-
Purchased on:
<%= @book.purchased_on %>
-
+
+<%= link_to('Add Memo', :controller => 'detailmemos', :action => 'new',
+ :bookid => @book) %>
+
<%= link_to 'Edit', edit_book_path(@book) %> |
<%= link_to 'Back', books_path %>