试图链接到特定的新漫画评论页面

时间:2012-12-21 20:14:20

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试在文章展示页面上获取链接,以便当用户点击撰写新评论时,会将其带到链接

/comic_reviews/'the article they want to comment on'/reviews/new

他们将被转到新的评论页面

如何用

完成此任务

2 个答案:

答案 0 :(得分:3)

在路线文件中,您可以指定类似此路线的路线

match '/comic_reviews/:comic_name/reviews/new' => 'reviews#new', via: :get

然后在你的评论控制器中你需要这样的东西

<强> reviews_controller.rb

class ReviewsController < ApplicationController

  def new
    @comic = Commic.find_by_name(params[:comic_name])
    if @comic
      @review = @comic.reviews.build
      render 'new'
    else
      #Render some error page since comic was not found
    end
  end
end

然后,您可以在@comic视图中访问@reviewreviews/new,这样您就可以构建一个仅发帖以创建评论的表单,并允许您存储它。这应该让你去。

修改

new视图中,您需要有一个类似于此内容的表单

<%= form_for @review do |f| %>
  <%= f.label :some_attribute %>:
  <%= f.text_field :some_attribute %><br />

  <%= f.submit %>
<% end %>

这将期望您有路线在路线文件中创建评论,并在您的ReviewController中创建一个动作。

如果你正在努力解决这些话题,我建议你阅读这篇优秀的教程

http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

或者只是阅读Rails API的文档,它将为您提供非常准确的示例。

答案 1 :(得分:1)

您可以通过路线

执行此操作
resources :comic_reviews do
  resources :reviews
    #probably_some_other_route_here
end

通过安静的模式,您可以轻松实现任何想要的目标

控制器

Someclass < Someotherclass

  #some your code

  def new
    @instance_var = Your_model.new
  end

  def create
    @instance_var = Your_model.new(params[:some_name_here])
    if @instance_var.save
      redirect_to somewhere
    else
      render 'new'
    end
  end
end

你也需要表格,但我认为这不会造成任何麻烦