acts_as_commentable例子?

NJ.*_*NJ. 5 ruby-on-rails acts-as-commentable

我有一个我想要评论的模型.我在模型的"show"视图上创建表单时遇到困难,该视图将允许创建注释.我没有找到任何好的或有用的例子.谁能指点我或给我一个如何做到这一点的例子?

例:

简单的博客应用程序.我有一个名为Post的模型.这是可评论的.所以在'show'视图中​​我想要显示一个Post,并在底部有一些字段,当完成并提交时,创建一个与该帖子关联的新评论并将其放入数据库中.

听起来很简单,我有它的工作,所以我可以显示我播种的评论.我只是无法获得一个表格来处理新的.任何帮助表示赞赏.

小智 27

让我们假设一个Post模型.确保,你有

class Post < ActiveRecord::Base
acts_as_commentable
end
Run Code Online (Sandbox Code Playgroud)

然后在发帖#show的视图中

  <%= form_tag "/posts/add_new_comment" do %>
    <%= hidden_field_tag "id", post.id %>
    <%= text_area_tag "comment[comment]" %>
    <%= submit_tag "Post Comment" %>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

然后在PostController中

  def add_new_comment
    post = Post.find(params[:id])
    post.comments << Post.new(params[:comment])
    redirect_to :action => :show, :id => post
  end
Run Code Online (Sandbox Code Playgroud)

并在routes.rb

  match "/posts/add_new_comment" => "posts#add_new_comment", :as => "add_new_comment_to_posts", :via => [:post]
Run Code Online (Sandbox Code Playgroud)

希望这能让你起步并运转.

  • 没有snark的好答案(如上所示).非常感激. (10认同)

mar*_*ark 3

这是非常非常基本的东西,您显然需要一些更好的学习结构和方法。购买一本书,比如《Agile Web Development with Rails》,是唯一真正的学习方式,否则你会在一个又一个问题之间徘徊,而没有真正学好任何东西。

假设您有一篇文章想要发表评论。

#routes.rb
map.resources :posts do |post|
  post.resources :comments
end

#post_controller.rb
def show
  @post.find params[:id]
  @comment = @post.comments.new
end

#posts/show.html.erb
<%- form_for [@post, @comment] do |f|-%>
  <%= f.text_area :body -%>
  <%= f.submit -%>
<%- end -%>

#comments_controller
def create
  @post = @post.find params[:post_id]
  @comment = @post.comments.new params[:comment]
  if @comment.save
    redirect_to @post
Run Code Online (Sandbox Code Playgroud)