簡體   English   中英

Rails 3 + Devise:新評論表單還包含用戶模型字段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM