rails:2830
From: 秦 耕造 <k_hada@m...>
Date: Mon, 28 Jul 2008 19:54:33 +0900
Subject: [rails:2830] Re: 一画面で、複数テーブル更新するときのvalidate?
ご回答ありがとうございます。
form_for の内側で、fields_for というヘルパーを使うってうまくいきました!!
ありがとうございます。
ソースは以下のようになりました。
・view
<% form_for(@model_para), :url => { :action => "input_cheack" } do |f| %>
<% fields_for :model_para2 do |pc_sinsei| %> ### ←2テーブル目を指定
### ↓↓↓2テーブル目を追加
<%= error_messages_for 'model_para','model_para2' %>
<%= f.text_field :項目名 %>
<%= model_para2.text_field :項目名 %>
<% end %>
<% end %>
・controller
@model_para = Modelname.new(params[:model_para])
@model_para2 = Modelname2.new(params[:model_para2])
if @model_para.save && @model_para2.save
#正常処理
・・・
else
#エラー処理
render :action => "登録画面名"
end
・model
validates_presence_of (:項目名, :message => "エラー。")
・model2
validates_presence_of (:項目名, :message => "エラー。")
babie <babie.tanaka@g...> wrote:
> ばばです。
>
> form_for の内側で、fields_for というヘルパーを使うと良いと思います。
>
>
> 2008/07/28 14:53 秦 耕造 <k_hada@m...>:
> > たびたび失礼します。
> > Rails初心者の秦と申します。
> >
> > 1画面で複数テーブル更新する場合のvalidate
> > についての質問です。
> >
> > 1画面で1テーブル更新する場合以下のように記述すると、
> > @model_paraに格納されたエラーを<%= f.error_messages %>
> > で出力でき、更に、エラーのある入力項目を反転表示出来ると
> > 思います。
> > ・view
> > <% form_for(@model_para) do |f| %>
> > <%= f.error_messages %>
> > <%= f.text_field :項目名 %>
> > <% end %>
> >
> > ・controller
> > @model_para = Modelname.new(params[:model_para])
> > if @model_para.save
> > #正常処理
> > ・・・
> > else
> > #エラー処理
> > render :action => "登録画面名"
> > end
> >
> > ・model
> > validates_presence_of (:項目名, :message => "エラー。")
> >
> > これが、1画面、2テーブルになるとどの用に記述すれば宜しいでしょうか??
> > ・view
> > <% form_for(@model_para) do |f| %> ###←ここで2テーブル分割りあてる??
> > <%= f.error_messages %>
> > <%= f.text_field :項目名 %>
> > <%= f.text_field :項目名 %>
> > <% end %>
> >
> > ・controller
> > @model_para = Modelname.new(params[:model_para])
> > ### ↓↓↓↓↓ここで2テーブル分割りあてる??
> > ### @model_para2 = Modelname2.new(params[:model_para2])
> > ### @model_para2.save
> > if @model_para.save
> > #正常処理
> > ・・・
> > else
> > #エラー処理
> > render :action => "登録画面名"
> > end
> >
> > ・model
> > validates_presence_of (:項目名, :message => "エラー。")
> >
> > ・model2
> > validates_presence_of (:項目名, :message => "エラー。")
> >
> > たびたび申し訳ありませんが、よろしくお願いいたします。
> >
> > ------環境は以下の通りです------
> > ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
> > Rails 2.1.0
> >
> >
> >
> > --
> > ML: rails@r...
> > 使い方: http://QuickML.com/
> >
>
>
>
> --
> babie:
> blog: http://d.hatena.ne.jp/babie/
> mail: babie.tanaka@g...
>
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
>
--
ML: rails@r...
使い方: http://QuickML.com/
2828 2008-07-28 07:53 [k_hada@m... ] 一画面で、複数テーブル更新するときのvalidate? 2829 2008-07-28 08:13 ┗[babie.tanaka@g... ] -> 2830 2008-07-28 12:54 ┗[k_hada@m... ]