鍍金池/ 問答/網(wǎng)絡安全/ rails多態(tài)怎么在頁面中調(diào)用?

rails多態(tài)怎么在頁面中調(diào)用?

rails多態(tài)問題:

我現(xiàn)在有問題,文章,評論三個模型,一個問題對應多個評論,一篇文章對應多個評論,現(xiàn)在怎么在問題下提交評論?。

我的models如下:

#comment.rb
class Comment < ActiveRecord::Base
  belongs_to :commentable, :polymorphic => true
end

#question.rb
class Question < ActiveRecord::Base
   has_many :comments, :as => :commentable, :dependent => :destroy
 end

我的question的show.html.erb評論代碼如下:

<% @comment = @question.comments.build  %>
<%= form_for([@comment.commentable,@comment]) do |f| %>
    <%= f.text_area :content,class: "editormd-markdown-textarea" %>
    <%= f.submit "提交", class: "btn btn-primary pull-right" %>
<% end %>

我的question_controller.rb部分如下:

def create
   Question.find(params[:question_id]).comments.build
end

我的roots.rb部分代碼如下

resources :questions do
    resources :comments
  end

但是我得了這個錯誤,請問我該怎么做呢?哪里出錯了呢?非常感謝。

Routing Error
uninitialized constant CommentsController
回答
編輯回答
來守候

主要問題在于這語句:

<%= form_for([@comment.commentable,@comment]) do |f| %>

這句實質(zhì)就是<%= form_for([@question, @comment]) do |f| %>
url: "/questions/2/comments" (post請求)
也就是說你是給這個question添加評論,需要comments控制器,并定義create方法
但是你沒有定義

2017年11月4日 09:54