[英]Rails 3 + Devise: New Comment form also containing User model fields?
這個想法是讓您有一百萬次見過的東西,一個“發布新評論”表單,其中包含以下字段(適用於未登錄的訪問者):名稱,電子郵件,網站和消息
請注意,“ message”字段屬於Comment模型,其他3個屬於User模型。 由於用戶模型可驗證設計,因此我希望能夠以這種混合形式使用這些驗證(以及用於注釋字段的那些驗證)。
這可能嗎? 即使Comment是User的子代,我也可以將accepts_nested_attributes_for(:user)
添加到Comment模型中嗎?
謝謝!
我不確定這是否正是您要的,但是您可以執行以下操作...在用戶模型中創建虛擬訪問器以進行評論:
def with_comment
if params[:user][:comment]
@comment = self.comments.build params[:user][:comment]
else
@comment = self.comments.build
end
end
def with_comment=(comment)
self.comments.build comment
end
然后在app / views / users / registrations / new.html.erb中:
<%= form_for(resource.with_comment(params),
:as => resource_name,
:url => registration_path(resource_name)) do |f| %>
<% f.fields_for :with_comment, resource.with_comment do |cf| %>
<% cf.text_area :message %>
...
我沒有測試過,但是它是根據我正在使用的類似工作代碼改編而成的。
這實際上是添加了注釋的用戶表單。 我只是讓設計去做,不要與它抗爭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.