同一视图中的评论,问题和答案

时间:2014-02-01 19:48:13

标签: ruby-on-rails ruby-on-rails-4

我正在尝试使用评论显示页面上的所有表单添加评论的问题和答案。添加问题有效,但添加答案会重定向到'/ questions // answers'并显示错误

No route matches [POST] "/questions/answers"

以下是我的路线:

resources :comments do
  resources :questions do
 end
end 

resources :questions do
  resources :answers do
 end
end 

以下是评论显示视图:

<% @questions.each do |question| %>
<%= @comment.question %>
<%= render :partial => "answers/form" %>
<% end %>

答案形式:

<%= simple_form_for [@question, Answer.new] do |f| %>
<%= f.input :body %>
<% end %>

和评论控制器:

def show
@comment = Comment.find params[:id]
@questions = @comment.questions
@answer = Answer.new      
end

最后答案控制器:

def create
@question = Question.find(params[:question_id])
@answer = @question.answers.new(answer_params)
end

谢谢!

3 个答案:

答案 0 :(得分:1)

在你的答案表格中

<%= simple_form_for [@question, Answer.new] do |f| %>
    <%= f.input :body %>   
<% end %>

从哪里获得@question

可能是以下更改将解决您的问题尝试

以下是评论显示视图:

<% @questions.each do |question| %>
    <%= @comment.question %>
    <%= render :partial => "answers/form", locals: {question:question} %>
<% end %>

答案形式:

<%= simple_form_for [question, Answer.new] do |f| %>
      <%= f.input :body %>   
<% end %>

和你的答案控制器

def create
    @question = Question.find(params[:question_id])
    @answer = @question.answers.new(answer_params)
    @answer.save
end

答案 1 :(得分:0)

你更有可能找到这样的工作:

questions/1/answers

猜猜。你可以检查rake routes的输出,我想你会看到这样的东西:

questions/:id/answers

答案 2 :(得分:0)

在create方法中,您永远不会保存到数据库。 @answer永远不会有身份证明。

AnswersController#创建

@answer = @question.answers.create(answer_params)

@answer = @question.answers.new(answer_params)

我没有在代码中看到问题出错的地方,但即使它不是修复程序......这也是一个问题。