RubyOnRails RubyOnRailsで帳票印刷

Rails3.2で関連するモデルのフォームをあわせて表示~accepts_nested_attributes_for & fields_for

投稿日:

Railsで関連するモデルのフォームを表示するメモ

またハマったので手順をメモ

Model

has_manyとか関連性を書く
accepts_nested_attributes_forを指定する
関連するモデルのattributesもattr_accessibleに書く

 

has_manyのオプションとして、そのモデルのデータを削除したとき、関連するデータも一緒に削除するかを選べる

accepts_nested_attributes_forのオプションとして、関連するデータを削除できるかを選ぶことができる

このオプションをtrueにすると、params[:_destroy]にtrueをいれることで関連するデータを削除できる

railscasts.com/episodes/196-nested-model-form-revised?view=asciicast

 

 

View

 fields_forを使う

対象は直接指定してもいいし(編集のようにすでにある場合)、:valuesのようなシンボルでも可 <=シンボルでないと新規作成のときうまく保存できなかった.普通はparamsに:values_attributesという名前で格納されるんだけど、上のときはparams[:values]で格納されてきた.ここを修正しようとしたけどやり方が分からなかった

*<% ではなく <%=を使う!これに気づかずにフォームが表示されなくてハマった.

Controllerでもどこでも

今回はModelでTemplateがもっているKeyから自動でValueを作成するので、model内のメソッドで定義した

メソッドチェインでうまくいった.

 

Can’t access mass asign…というエラーが出て悩んだんだけど、上のcreateのときのattributesの書き方が悪かったというオチ

-RubyOnRails, RubyOnRailsで帳票印刷
-,

執筆者:

関連記事

Backbone.jsからRails3.2へのPUTに対して204(no content)が返ってくる問題

By: Bernardo Chang – CC BY 2.0   UPDATEするときRailsはデフォルトでJSONには何も返さないのがデフォルトぽい [crayon-5bc9 …

Railsでデータベーススキーマの変更と関連するモデルのフォーム

  gemを公開しました!詳細は記事の最後に!   新規投稿するフォームのラベルが変数を使っていて見苦しいので自分で好きなラベルを付けられるようにした いまのスキーマはこんな感じな …

Rails3.2でdocxを作成

目次1 途中経過2 次にrubyのスクリプトから同じことをしてみる3 Railsから試してみる4 うまくいきました 途中経過 github.com/jawspeak/ruby-docx-templat

Rails4でerbぽいテンプレートからdocxを作成〜docx_templater

By: Kanko* – CC BY 2.0 目次1 docx_templater2 準備3 インストール4 サンプル作成5 できた6 node.jsでdocxを生成するライブラリがリリー …

状況に応じてRailsのフォームの種類を変える

By: Heidi De Vries – CC BY 2.0 目次1 前提2 仕様の決定3 正規表現の変更4 メタプログラミング第一歩5 helper6 view7 できた8 できてない9 …