ActiveAdminでらくらくCRUDをつくる
shokos Advent Calendar 2012一日目
rails ActiveAdminでらくらくCRUDをつくる!
Active Admin | The administration framework for Ruby on Rails
スケジュール管理アプリ、Popuraをつくりました。
rails new Popura
がーっとファイルやフォルダが作られ、インストールも走ります。
プロジェクトに移動。
cd Popura
Gemfileを開いて下記を追加。
gem 'activeadmin'
インストールコマンドを走らせます。
bundle install --path vendor/bundler rails generate active_admin:install
DB定義をします。
rails g model schedule plan:string summary:string occurred_at:date
DB反映。あ、デフォルトはsqlite3だよ。config/database.ymlに設定があります。
rake db:migrate
scheduleのCRUDをつくります。
rails g active_admin:resource schedule
これで準備おっけー!起動しましょう。
rails server
http://localhost:3000/admin/loginにアクセス
下記初期アカウントでログイン。
email:admin@example.com
password:password
ヘッダーメニューからscheduleに移動。早速データがつくれます!
ところで私事ですが、先日結婚して佐々木から島崎になりました。
また、転職してドワンゴ社員からCA社員になりました。
今後ともよろしくお願いします!
非エンジニアにgitをレクチャーする
- レクチャーしたいターゲット
・ エンジニアではない(エンジニアは自分でちゃんと勉強しましょう)
・デザイナーさん等、ローカルでwebアプリケーションを確認しながらマークアップ編集したり、画像を追加したりする感じで、あまりロジック部分はいじらない
・svnは使ったことがある(コマンドラインからだとうれしいけれど、GUIでも)
・コマンドラインはあまり使ったことがなくてもOK
- 推奨環境
・gitはコマンドラインから使ってもらう
・チームでのブランチの管理はきちんと(masterに直接コミットしないルール/ターゲットがデザイナーさんならデザイナーさん専用のブランチがあり、定期的にエンジニアがmergeしてあげる等)
・基本的にターゲットが見るブランチは1つ
- gitの説明
・svnが少し複雑になったものです(svnとの差分は必要に応じて説明)
- 導入
・公開鍵作成、登録、clone、ブランチチェックアウトまではやってあげるといいかも
- svnのアップデートにあたることをやってもらう
$ git pull origin ブランチ名
- conflictって出た
・駆けつけてなんとかしてあげましょう
・どうしても頻発が免れない状況なら、rebaseをレクチャー
- 前コミットした状態に戻してもらう
・いろいろ試しに編集してよくわからなくなってしまったので、前コミットした状態に戻したいという場合
$ git reset --hard
- みんなのコミットログを見てもらう
$ git log
変更した中身までみたい場合は
$ git log -p
- svnのコミットにあたることをやってもらう
・ まず、編集や追加をしたファイルを確認してもらいます
$ git status
編集したファイル、追加したファイルの一覧が出ると思います
「あれ?これ編集した覚えないぞ?」
というのがあったら、
$ git diff ファイル名
で差分を確認(すべてのファイルで差分は確認してもらいたいけど、それは必要に応じてでいいかなと)
( getApplication , getApplicationDev ) where - import Import import Settings + import Yesod.Auth import Yesod.Default.Config
+が追加、-が削除行です
改行が入り込んだ等で、もとの状態に戻したい場合、
$ git checkout HEAD ファイル名
でもとに戻してもらいます(ファイルを直接編集してもいいけど)
・ いざコミット
まず、追加や変更のあったファイルを、コミット候補に追加します
$ git add ファイル名
次にコミット
$ git commit -m "コミットメッセージ"
続けて、サーバーに変更を送信
$ git push origin ブランチ名
- その他
・開発側がガンガン変更するブランチとターゲット用ブランチは分けて、定期的にmergeするのがいいかと思います。mergeしたらターゲットにpullしてもらう
・pushするとき、ブランチ名に絶対に:が入らないように注意してもらう
エンジニアは本渡して勝手に勉強してもらって、後はペアプロでやればおkだと思っていますが、
エンジニア以外にレクチャーするのは初の試みなので書いてみました
なにかアドバイス等ありましたら教えてほしいです
Haskell Platform 2012.2.0.0を入れたよ!
6月3日、わたしの誕生日かつ結婚式の翌日にHaskell Platform 2012.2.0.0がリリースされたようです!!
Haskellからの結婚祝い&誕生日祝いだと思えるくらい、うれしい機能追加が。
@shelarcy さんがGoogleGroupのHaskell-jpにまとめてくれているのですがGoogle Groupsわたしからもいくつかご紹介
まずalexが3系になったおかげで、日本語の扱いが素晴らしく楽になりました。
main = writeFile "ほげ.txt" "ああああ"
今までSystem.IO.UTF8等をimportしなければならなかったのが、標準ライブラリで日本語が扱えるように。
あと、ghciでdata宣言もできるようになりました。
Prelude> :{ Prelude| data Hoge = Foo | Piyo Prelude| deriving(Eq, Show) Prelude| :} Prelude> Foo == Foo True
インストールですが、「古いghcを捨てよ」と言われるので、事前に
$ sudo /Library/Haskell/bin/uninstall-hs thru 7.0.4 --remove
しておくとよいです。
ghc7.0.4で、バイト文字列を日本語ファイル名で保存する方法
環境はmac、ghc7.0.4
yesodアプリケーションで、アップロードされた画像ファイルをローカルに保存するときに、日本語ファイル名だと文字化けしてしまう問題が発生した。
どうやらghc7.0.4は日本語ファイル名に対応していないっぽい。
Haskell-jaに質問を投げてアドバイスをもらった結果、ファイル名をCodec.Binary.UTF8.String. encodeStringでenncodeしてあげるとうまくいった!
import Data.ByteString as B import Codec.Binary.UTF8.String as S main :: IO () main = do body <- B.readFile "hoge.jpg" B.writeFile (S.encodeString "ほげ.jpg") body
もしバイト文字じゃなくただの文字列の場合は、System.IO.UTF8のwriteFileで日本語ファイル名が保存できる。
ghc7.4からは日本語ファイル名対応するらしいので、はやく付属のHaskell Platformがでてほしいところ。
Bundleでghc-modをいれる方法
Bundleでghc-modをいれる方法
- Bundleを持ってくる
$ cd ~/.vim $ git clone http://github.com/gmarik/vundle.git ~/.vim/vundle.git
- vimrcにインストールしたいものを追加
vimrcのトップに書く
set nocompatible filetype off set rtp+=~/.vim/vundle.git/ call vundle#rc() " for ghcmod.vim Bundle 'Shougo/vimproc' Bundle 'eagletmt/ghcmod-vim' " for neco-ghc Bundle 'ujihisa/neco-ghc' Bundle 'Shougo/neocomplcache' " for Syntastic Bundle 'scrooloose/syntastic' filetype plugin indent on
Bundleの使い方についてはこちらVim-users.jp - Hack #215: Vundle で plugin をモダンに管理する
- :BundleInstall実行
vimでファイルをひらいて、:BundleInstall実行。
インストールdoneまで待つ。
- make実行
$ cd ~/.vim/bundle/vimproc $ make -f make_mac.mak
ちなみにmacだからファイル名がmake_mac.makってなっているかんじ
- ghc-mod持ってくる
$ cabal install ghc-mod
- ghc-modのパスを通す
- vimで.hsファイルひらいてみる
ghc-mod 1.10.11を持ってこいよ。と言われたので、cabal install ghc-mod-1.10.11とパス通すのをやり直し。
再度vimで.hsファイルを開くとできてるー!!!!
yesod0.10をいれてcabal installしたらコケた問題
開発環境:mac、ghc7.0.4
新しく作ったyesodプロジェクトで、cabal installすると下記エラーがでた。
Resolving dependencies... Configuring language-javascript-0.4.9... cabal: The program alex version >=3.0 is required but the version found at /usr/bin/alex is version 2.3.5 cabal: Error: some packages failed to install: happiage-0.0.0 depends on language-javascript-0.4.9 which failed to install. hjsmin-0.0.15 depends on language-javascript-0.4.9 which failed to install. language-javascript-0.4.9 failed during the configure step. The exception was: ExitFailure 1
cabal install alexして、バージョン3.0以上のalexを持ってくる。
/usr/bin/alexを、持ってきたalex実行ファイルに置き換えて、もういっかいcabal installしたらできた!
yesodは設定でいろいろコケるけど、たいへん素晴らしいwebフレームワークなので、どこかでチュートリアル的な記事書きたいところ。