亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有嵌套資源的form_for

具有嵌套資源的form_for

MMMHUHU 2019-07-25 18:51:23
具有嵌套資源的form_for我有一個關于form_for和嵌套資源的兩部分問題。假設我正在編寫一個博客引擎,我想將評論與文章聯系起來。我已經定義了一個嵌套資源,如下所示:map.resources :articles do |articles|     articles.resources :commentsend評論表單位于文章的show.html.erb視圖中,位于文章本身下方,例如:<%= render :partial => "articles/article" %><% form_for([ :article, @comment]) do |f| %>    <%= f.text_area :text %>    <%= submit_tag "Submit" %><%  end %>這給出了一個錯誤,“為nil調用id,這會錯誤等等”。我也試過了<% form_for @article, @comment do |f| %>哪個呈現正確但將f.text_area與文章的“文本”字段而不是注釋相關聯,并在該文本區域中顯示了article.text屬性的html。所以我似乎也有這個錯誤。我想要的是一個表單,其'submit'將在CommentsController上調用create action,在params中有一個article_id,例如對/ articles / 1 / comments的post請求。我的問題的第二部分是,開始創建評論實例的最佳方法是什么?我正在ArticlesController的show動作中創建一個@comment,因此一個注釋對象將在form_for幫助器的范圍內。然后在CommentsController的create動作中,我使用從form_for傳入的參數創建新的@comment。謝謝!
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

您不需要在表單中執行特殊操作。您只需在show動作中正確構建注釋:

class ArticlesController < ActionController::Base
  ....
  def show    @article = Article.find(params[:id])
    @new_comment = @article.comments.build  end
  ....end

然后在文章視圖中為它創建一個表單:

<% form_for @new_comment do |f| %>   <%= f.text_area :text %>   <%= f.submit "Post Comment" %><% end %>

默認情況下,此注釋將轉到您可能想要放入的create操作CommentsController,redirect :back因此您將被路由回Article頁面。


查看完整回答
反對 回復 2019-07-25
  • 3 回答
  • 0 關注
  • 574 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號