我有一个汽车和用户模型。用户拥有许多汽车和汽车属于用户模型。在汽车模型中,我有名为android:horizontalSpacing
&的列。 renter_status
,默认值为"待定"。在此过程中,任何一个用户都可以取消请求。
让我们说,约翰有一辆id = 1的车,而Jane希望在两个日期之间向John发送预订请求。当Jane发送预订请求时,如果所有者批准,则将请求发送给所有者,然后owner_request变为"已批准"。然后Jane可以看到请求已被批准,如果Jane取消,则renter_request变为"已取消"。
我认为必须有一种方法可以通过rails关联更好地做到这一点。我有两个用户,但当他们阅读&写入相同的模型,我必须一直检查renter_status和owner_status。
让我们说,John希望删除该请求,并且不希望在索引操作中看到它。当他这样做时,列owner_status变为" Deleted",但他的请求可以看作Jane尚未被删除。
最有效的方法是什么?
答案 0 :(得分:0)
我想我有点失落。所以你有两个模型,Car
和User
,关联是这样的:
汽车
belongs_to :user
用户
has_many :cars
我会制作第三个模型Requests
,因为一个Car
应该有一个以上的请求' ,让我们说,在一个月内。但如果你真的想这样做,你不应该让John删除请求,而是取消它
您可以执行此类行为,在您正在编辑请求的视图中添加控件,例如,提交按钮将调用控制器中的操作,该操作会将值更改为&#34;拒绝&#34;。<登记/>
在此之后,您可以索引未拒绝的请求,如下所示:
Rails 4
@requests_not_rejected = Car.where.not(renter_status: 'Rejected')
Rails 3
@requests_not_rejected = Car.where(Car.arel_table[:renter_status].not_eq(me))
当您录制这些动作时,通常您不会删除它们。