我有一个form_for一条评论。评论belongs_to问题。我在我的问题#show view中有一个评论表单,这是我form_for的地方。我在我的问题#show controller操作中创建了评论对象@comment。当我提交表单时,它会调用注释#create controller操作。但是,我需要一个名为issue_id的变量。我在问题#show view中拥有issue_id,我甚至可以将@comment对象设置为具有issue_id。但是,当它传递给注释#create controller时,issue_id不会在params [:comment]中传递,所以当注释被创建并保存时,它不在那里。下面是我的文件:似乎无法将变量传递给我的控制器
问题#显示视图:
<%= form_for @comment do |f| %>
<%= render 'comment_fields', :f => f %>
<%= f.submit "Submit" %>
<% end %>
问题#显示控制器:
def show
@issue = Issue.find(params[:id])
@votes = Votership.where(:issue_id => @issue.id)
@current_user_vote = @votes.where(:user_id => current_user.id).first
@comment = Comment.new(:issue_id => @issue.id)
end
和评论#创建控制器在评论被创建:
def create
@comment = Comment.new(params[:comment])
@comment.user = current_user
@comment.save
redirect_to :back
end
我试着在窗体中添加一个隐藏字段,但它一直创建一个值的散列,关键是t他issue_id,但我不知道如何设置隐藏字段的值,这是奇怪的。我如何正确地做到这一点?
PS comments belongs_to issues。问题有很多意见。发布belongs_to应用程序。应用程序有很多问题。
哦我的!!!我一直试图让这个工作这么久......这工作!谢谢。现在......这是做这件事的最好方法吗?当我为表单准备对象时,它包含issue_id,是否有更好的方法将该信息传递给注释#create controller actioN? –