我正在观看有关多态关系的Ryan Bates截屏视频,并使用此私有方法查找与嵌套模型相关的所有注释。
所以我可以找到给定帖子的所有评论:
def find_commentable
params.each do |name, value|
if name =~ /(.+)_id$/
return $1.classify.constantize.find(value)
end
end
nil
end
然后用于:
@commentable = find_commentable
@comments = @commentable.comments
评论以此表格发布:
- form_for [@commentable, Comment.new] do |f|
= f.label :text, 'Comment'
%br/
= f.text_area :text, :style => "height: 100px;"
%br/
= f.submit "Submit"
但是,如果在同一页面上,我想为每条评论都有一个表格?我如何为它设置form_for,以及它的控制器必须指定什么?
答案 0 :(得分:-1)
我所做的是从find_commentable方法开始并以这种方式拆分:
def find_commentable
params.each do |name, value|
if params[:comment]
return Comment.find(params[:comment][:id])
elsif name =~ /(.+)_id$/
return $1.classify.constantize.find(value)
end
end
nil
end
ID从表单中作为hidden_field传递。
从那里,常规控制器将负责保存。