RubyOnRails

Railsで前のデータを使って新規作成

投稿日:

 

 

前提

今度こそRails3.2からdocxを生成する

テンプレートからデータを代入してdocxを作れるようになったけど、実際には過去のデータを流用して新しいdocxを作りたいことがよくある.

ので、過去のデータで新規作成をできるようにしてみた.

構想

ここではとりあえず、前のデータを使って新規作成の動作は、documents#newにやらせることにした.
前にtemplates#showにdocument新規作成のformを作ったのでdocuments#newは使ってなかったから.

というふうに定義することにした.

routes.rb

なので、config/routes.rbのresource :documentsより前に次のように書いた

view

次にtemplates#showに一覧表示しているdocumentsの一覧から、前のデータを使って新規作成をやりたいのでNewへのリンクを作った.

これでrenew_document_path(document)が、documents/#{document.id}/newというパスを生成してくれる

そして、リンク先のコントローラーでparams[:id]でdocument.idを読める.

documents_controller

フォーム用のモデルとフォームに代入するデータの準備をする.2つの配列からハッシュをつくるのはここを参照した.to_hashを定義してもいいかな.あとsplitとかはいい加減modelに回したい.

view

で、_formは前のままで

DEKITA

こんなデータでnewリンクをクリックすると

前のデータが入力された状態でCreate Documentになってる

*データベースのスキームを直したので普通にdocument.newに初期値を設定すればOKになりました.accepts_nested_attributes_forを設定しているので、document.value.buildを必要な回数分だけやれば関連フォームを必要な分用意してくれます.

参考

railscasts.com/episodes/196-nested-model-form-part-1

-RubyOnRails
-,

執筆者:

関連記事

no image

Strong Parameters関連のデバッグ

関連するモデルの保存がうまく出来ない場合、本体のモデルの保存はうまく出来ているのでエラーは出ない。 サーバーのログをみると、 Unpermitted parameters という …

RVMでRubyのバージョンアップ

By: Geri Coady – CC BY 2.0 目次1 RVMのバージョンアップ2 Rubyのバージョンアップ3 2.0.0から2.1.0にバージョンアップ4 gemのバージョンアッ …

KEN_ALL.CSVを使ってRailsで郵便番号を検索するサイトを作る1

  放置しっぱなしだったKEN_ALL.CSVで簡単に郵便番号を検索できるサイトを作ってみた 参考 KEN_ALL.CSVを使える形にする 郵便番号データダウンロード 目次1 KEN_ALL …

heroku操作メモ

By: Yasuhiko Ito – CC BY 2.0 5分でRailsアプリを公開できるherokuですが、いつもステップ・バイ・ステップでつまずいているのでリスト化した heroku …

no image

Rails3でrtfを出力

  rtfはリッチテキストフォーマット、ms wordなどで扱えるほか、標準添付のwordpadなどでも扱える config/initializers/mime_types.rbを編集 [c …