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

執筆者:

関連記事

Rails3.2でdocxを作成

  途中経過 github.com/jawspeak/ruby-docx-templater これを試してみた まずローカル環境にgemをダウンロード [crayon-59747c2835a …

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

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

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

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

no image

Rails3.2でCoffeeScriptをerbテンプレートとして使う件

目次1 リンクのリモートオプションをTrueにする(フォーマットをjsにする設定をしても必要)2 コントローラーでjsフォーマットを有効にする3 viewディレクトリ以下に.js.coffee拡張子で …

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

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