我正在尝试在文章显示页面上获取链接,以便当用户点击撰写新评论时,它会将他们带到链接
/comic_reviews/'the article they want to comment on'/reviews/new
他们将被引导到新的评论页面
我怎么能做到这一点
我正在尝试在文章显示页面上获取链接,以便当用户点击撰写新评论时,它会将他们带到链接
/comic_reviews/'the article they want to comment on'/reviews/new
他们将被引导到新的评论页面
我怎么能做到这一点
在您的路线文件中,您将指定这样的路线
match '/comic_reviews/:comic_name/reviews/new' => 'reviews#new', via: :get
然后在你的评论控制器中,你需要这样的东西
评论控制器.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
并@review
在您的reviews/new
视图中,这样您就可以构建一个仅发布帖子以创建评论并允许您存储它的表单。这应该让你继续前进。
编辑
在您new
看来,您需要一个看起来像这样的表单
<%= form_for @review do |f| %>
<%= f.label :some_attribute %>:
<%= f.text_field :some_attribute %><br />
<%= f.submit %>
<% end %>
这将期望您有一个在您的路线文件中创建评论的路线和在您的评论控制器中的操作。
如果您正在为这些主题而苦苦挣扎,我建议您阅读这个优秀的教程
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
或者只是阅读 Rails API 的文档,它将为您提供非常准确的示例。
您可以通过路线执行此操作
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
你也需要表格,但我认为这不会造成任何麻烦