私はRfq contollerを作成しています。オブジェクトを保存または更新するときに、新しいRfqを更新しています。 Rfqを保存した後にquote_priceカラムのparams [:quotes]で引用符でline_itemsテーブルを更新したいと思います。Railsモデルからコントローラのパラメータを後で保存する方法
私はその混乱は知っていますが、誰かがヒントを得ているはずです。
私はRfq contollerを作成しています。オブジェクトを保存または更新するときに、新しいRfqを更新しています。 Rfqを保存した後にquote_priceカラムのparams [:quotes]で引用符でline_itemsテーブルを更新したいと思います。Railsモデルからコントローラのパラメータを後で保存する方法
私はその混乱は知っていますが、誰かがヒントを得ているはずです。
正直なところ、params
を扱っている場合は、モデルとコントローラの責任を混乱させないように、コントローラのロジックをコントローラに組み込むことをお勧めします。 コントローラである
は、:
if @foo.save
# Update line_items using params[:quotes]
end
私はあなたが主な目的とすべての子オブジェクトの両方を節約する1つのフォームを持つことができるようにしたいと思います。そうでない場合は、無視してください。
レールで、これは "nested_attributes"
という名前で、あなたのモデルにこれを追加します:フォームビューで
accepts_nested_attributes_for :quotes
# assuming you have
has_many :quotes
、その後:
<% form.fields_for :quotes do |child_form| %>
<%= child_form.text_field :name %>
<% end %>
がこれをチェックしてくださいRyanのブログで:Nested Attributes
モデル内でハッシュ値がである場合、MVCの原則に違反しています。モデルは引数で単独で立つべきです。あなたがしようとしている場合は次の操作を行う:
# controller
Model.foo
# model
def foo
params[:bar].reverse!
end
あなたが代わりに次の操作を行います。[:引用符] after_saveブロックから `
# controller
Model.foo(params[:bar])
# model
def foo(foobar)
foobar.reverse!
end
あなたは' paramsはに直接アクセスすることができましたか? – Dogbert
どのように例を挙げて説明できますか? –
'params'はモデルから直接アクセスできないと思います。 –