ダウンロード サンプルソース (5.4 KB)
その他のcurl_scaffold用テンプレートファイル
curl_scaffoldジェネレータが作成するアプリはHTML用のテンプレートや処理はいりませんので、curl_scaffoldに必要な最低限のファイルやコードのみ作ることにします。
コントローラ
コントローラはHTML・XMLページの表示や、HTMLアプリでしか必要のないnew・editメソッドを省略しました。
また、CSRF対策用のチェックverify_authenticity_token処理をskip_before_filterで指定して行わないようにしました。これでapp/controllers/application_controller.rb内のprotect_from_forgeryを変更しなくてもよくなります。
class <%= controller_class_name %>Controller < ApplicationController
skip_before_filter :verify_authenticity_token
def start
render :layout => false, :content_type => 'text/vnd.curl'
end
def index
@<%= table_name %> = <%= class_name %>.all
respond_to do |format|
format.json { render :json => @<%= table_name %> }
end
end
def show
@<%= file_name %> = <%= class_name %>.find(params[:id])
respond_to do |format|
format.json { render :json => @<%= file_name %> }
end
end
def create
@<%= file_name %> = <%= class_name %>.new(params[:<%= file_name %>])
respond_to do |format|
if @<%= file_name %>.save
format.json { render :json => @<%= file_name %>, :status => :created, :location => @<%= file_name %> }
else
format.json { render :json => @<%= file_name %>.errors, :status => :unprocessable_entity }
end
end
end
def update
@<%= file_name %> = <%= class_name %>.find(params[:id])
respond_to do |format|
if @<%= file_name %>.update_attributes(params[:<%= file_name %>])
format.json { head :ok }
else
format.json { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
end
end
end
def destroy
@<%= file_name %> = <%= class_name %>.find(params[:id])
@<%= file_name %>.destroy
respond_to do |format|
format.json { head :ok }
end
end
end
JSON出力形式の指定
前回は、JSON出力形式の指定ActiveRecord::Base.include_root_in_json = falseをconfig/environment.rbに書きましたが、今回は専用の初期化ファイルを作ります。Ruby on Railsではconfig/initializersディレクトリにあるファイルはサーバ起動時に実行されるので、ここにsetup_json.rbというファイルで指定します。
ActiveRecord::Base.include_root_in_json = false
なお、config/initializersディレクトリ下のファイルはアルファベット順に実行されるので、複数のファイルで同じ項目の設定を行う場合はファイル名が重要になります。今回のJSON出力形式の指定はnew_rails_defaults.rbでも指定されているので"n"より後ろのファイル名にしました。
ライセンスファイル
Curlのライセンスファイルの設置もcurl_scaffoldジェネレータで行うことにします。
この記事は参考になりましたか?
- Ruby on Rails + Curl連載記事一覧
-
- Curl+JRuby+Google App EngineでTwitter風アプリを作る ~...
- Curl+JRuby+Google App EngineでTwitter風アプリを作る ~...
- Ruby on Rails + Curl Curl用Scaffoldを自作する
- この記事の著者
-
吉田裕美(ヨシダユウミ)
有限会社 EY-Office 取締役CADのベンチャー企業でCADのコア部分や図面管理システムなどの開発に従事した後、独立しJava,Ruby,PerlでWebアプリを中心に開発してきた。現在は殆どの開発はRuby on Rails。ここ数年はソフトウェアエンジニアの教育に興味をもち、従来の知識偏重な教育ではなく現実の問題を解決できるエンジニアを育てる教育に注力している。またLisp等に関心...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
