Ruby on rails Rails忽略渲染并将_重定向到

Ruby on rails Rails忽略渲染并将_重定向到,ruby-on-rails,ruby,Ruby On Rails,Ruby,我这里有一个非常简单的rails问题,但我似乎在任何地方都找不到答案。我想其中一些问题是因为我学习了Rails1.2和Rails2.1的教程。无论如何 我正在写一个博客系统,我正在实现评论位。一旦我使用脚本/控制台创建了注释,它们就会显示得很好,但是要让注释表单本身工作起来很困难 在posts_controller.rb中,我有 def comment Post.find(params[:id]).comments.create(params[:comment]) flash

我这里有一个非常简单的rails问题,但我似乎在任何地方都找不到答案。我想其中一些问题是因为我学习了Rails1.2和Rails2.1的教程。无论如何

我正在写一个博客系统,我正在实现评论位。一旦我使用脚本/控制台创建了注释,它们就会显示得很好,但是要让注释表单本身工作起来很困难

在posts_controller.rb中,我有

  def comment
    Post.find(params[:id]).comments.create(params[:comment])
    flash[:notice] = "Added comment"
    #render :action => show
    redirect_to :action => show
  end  
在show.html.erb(视图)中

“comment”,:id=>@post%>

当我提交表单时,它试图转到urb/posts/comment/1,这显然是错误的,它抱怨找不到模板。显然,我不想在那里有一个模板,因为我告诉它重定向到show动作,因为我希望它只是重新显示帖子的show页面,在那里有新的评论

我尝试了注释掉的行(render:action=>show)和重定向到行,两个行似乎都没有做任何事情


我肯定我遗漏了一些简单的东西,但它是什么?

是的,您使用的是旧的rails样式

新事物:

   form_for :comment, :url => { :post_id => @post } do |f|
     f.text_area :body
     submit_tag "Post"
   end
您可以将资源用于帖子和评论、搜索谷歌以获得更好的教程或安装rails 1.2.6:

gem install -v 1.2.6 rails
Rails 2.1包含“RESTful资源”<代码>显示恰好是所有rails控制器使用的预定义REST操作之一的名称

Rails在幕后发挥了一些神奇的作用,show相当于“用特定的ID显示这个特定的元素”。听起来好像和这件事有关。ID可能默认为“1”。因此,您将从呈现调用中看到生成的URL

Rails 2.1的实现方法将使用以下操作和模板:

  • 索引
    -显示注释的完整列表
  • 创建
    -添加新注释
  • 显示
    -仅显示特定注释(而不是完整列表)。听起来这不是您想要的,但是rails内部的“魔力”将默认为这一点
还有用于
new
(显示视图以输入新注释)
edit
(显示视图以编辑现有注释)
update
(处理更新提交)和
destroy
(duh)的操作,但在本例中,您似乎不会使用它们


你有教程的链接吗?将其移植到Rails 2.1样式并不难。

是否将
重定向到:action=>'show',:id=>params[:id]
并在show work周围加引号?

教程位于。我还发布了另一个关于此类问题的问题
gem install -v 1.2.6 rails