我正在尝试在文章展示页面上获取链接,以便当用户点击撰写新评论时,会将其带到链接
/comic_reviews/'the article they want to comment on'/reviews/new
他们将被转到新的评论页面
如何用
完成此任务答案 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
视图中访问@review
和reviews/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
你也需要表格,但我认为这不会造成任何麻烦