Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I pass an array to fields_for in Rails?

I want to use fields_for on a subset of records in an association.

I have a Month model, which has_many :payments.

But in my form in my view I only want to have fields_for some of those payments. For example:

- fields_for @month.payments.large

This doesn't work.

Can I pass a set of records to fields_for, rather than the usual symbol (fields_for :payments) approach?

like image 624
nfm Avatar asked Dec 28 '22 08:12

nfm


1 Answers

You can add additional association for large payments, for example:

class Month < ActiveRecord::Base
  has_many :payments
  has_many :large_payments, :class_name => "Payment", :conditions => "value > 1000000"
end

After that you can use fields_for in common way:

- fields_for :large_payments

I think to encapsulate this logic on a model side is a better approach then in the view.

like image 189
Voldy Avatar answered Jan 12 '23 20:01

Voldy