Won't I be able to add the logic I need for debts using has_many
belongs_to? Basically all that I would need is to gather which debts I(as
the user) have and be able to(in future) toggle their 'paid/unpaid' status.
Or would it be better to have a relationship table? via has_many through?

As of the soft deleting I'm gonna narrow it down haha at first I'm just
trying to build some concrete functionality, this is just to show some
coding skills for an internship, gonna try 'n develop it much further when
I get the time and skills.

Anywyay, thanks for helping!
Diego Dillenburg Bueno

2014-09-21 20:47 GMT-03:00 Timothy Mukaibo <timo...@mukaibo.com>:

> Assuming a single creditor and multiple debtors for a single billing, you
> will need a one to one relationship for the creditor -> billing (belongs_to
> on the billing, as you have done), but a many to many relationship for
> debts -> users.
>
> Generally, it's better to implement the many-to-many as a has_many
> :through so you can add logic. It's probably doubly important when there is
> money involved!
>
> I would rethink the dependent: destroy though. You probably want to use a
> soft delete instead, or else you will lose your past transactions.
>
> On 21 September 2014 05:37, Diego Dillenburg Bueno <
> diegodillenb...@gmail.com> wrote:
>
>> Hello everyone,
>>
>> I'm a beginner Rails developer and right now am building a sample project
>> to show off at some job apply. The app is rather simple, I guess, but I
>> have come to some doubts on what associations to chose and why.
>>
>> Basically a User can create a bill(being its creditor) and the billing
>> can have many other Users(as their debtors), so you can track up billings
>> you share with other persons, like rent, market, food orders etc, and
>> control what each one got to pay you.
>>
>> Right now I have the following model:
>>
>> class User < ActiveRecord::Base
>> has_many :billings, foreign_key: "creditor_id", dependent: :destroy
>> has_many :debts, foreign_key: "debtor_id", dependent: :destroy
>> end
>>
>> class Billing < ActiveRecord::Base
>> belongs_to :creditor, class_name: "User"
>> has_many :debts, dependent: :destroy
>> end
>>
>> class Debt < ActiveRecord::Base
>> belongs_to :billing
>> belongs_to :user
>> end
>>
>> would this be the better approach? Or something like:
>> User has_many billings through debts
>> Billing has_many debts ?
>>
>> And in that case, would appreciate some help to model those associations,
>> because I'm still kinda lost on this flow.
>>
>> Thanks in advance,
>> Diego Dillenburg Bueno
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Talk" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to rubyonrails-talk+unsubscr...@googlegroups.com.
>> To post to this group, send email to rubyonrails-talk@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/rubyonrails-talk/CAOHSkmE893vhkwHsna6e5Ax4fCZipg965brtieXtr9Ui6OAVdw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/rubyonrails-talk/CAOHSkmE893vhkwHsna6e5Ax4fCZipg965brtieXtr9Ui6OAVdw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-talk+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/CABLJ1D%2BrD9ENPDHS5xAAH_aYr2f33uq%2BMQRkmxPn%2B6-i%3DY_Q%3Dw%40mail.gmail.com
> <https://groups.google.com/d/msgid/rubyonrails-talk/CABLJ1D%2BrD9ENPDHS5xAAH_aYr2f33uq%2BMQRkmxPn%2B6-i%3DY_Q%3Dw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAOHSkmHFaYLV7mvXA6%2BfQYkiV%2B%2BRbhMRB6iPD6Ge_BNmfBujvA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to