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で帳票印刷
-,

執筆者:

関連記事

no image

Rubyで対話型のコマンドを実行する~pty expect

  Rubyから普通のLinuxコマンドを実行するのはコマンドで実行できる たとえば、Linuxコマンドがなんらかの入力を要求するときはexpectライブラリを使えばいいらしい www.ru …

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

  前提 railsでdocxを生成する動画 docxを生成するアプリは変数を自動で読み込むけど、状況に応じてフォームの種類を変えたい. Railsでは変数に応じてフォームの種類を用意してい …

no image

Rails3でrtfを出力

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

docxをhtmlに変換する~ydocx

  github.com/zdavatz/ydocx プレビューの見た目を少しよくしたくて良さげなパーサーを試してみた 準備

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

  前提 Rubyからdocxを生成する 前回、イキオイアマって自分でdocxを生成する簡単なライブラリを作ってしまった.(なんて車輪の再発明 今回はこれをRailsから利用してみる. 目次 …