我有一個Message
Rails數據模型與「虛擬」關聯。也就是說,這是一種返回「關聯對象」集合的方法,但它不是ActiveRecord意義上的實際關聯。simple_form關聯字段不預先選擇所選元素
class Message
def recipients
@recipients
end
def recipients=(arr)
@recipients = arr
end
end
與simple_form的事情是,當我試圖表明一個association
場,它失敗,因爲沒有:recipients
協會:
= simple_form_for(@message) do |f|
= f.association :recipients, collection: Recipient.all
的解決方案似乎是那麼簡單的,我繼續使用f.input
與as: :select
選項:
= simple_form_for(@message) do |f|
= f.input :recipients, as: :select, collection: Recipient.all
這工作得很好,除了它確實沒有事實t自動檢測@message.recipients
中已有的值,以便在表單呈現時預先選擇元素。
如果Message#recipients
是一個實際關聯,則在ActiveRecord意義上,那麼表單中的f.association
也會這樣做。但是,由於超出了這個問題範圍的原因,我不能把它作爲一個實際的關聯。
接下來的問題是,我可以實現f.input :recipients, as: :select
預選所選元素嗎?