2011-11-24 191 views
-1

我有一个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应用程序。应用程序有很多问题。

回答

0

我实际上并不了解你的抱怨,但是从我的理解中,你试图将问题ID与评论一起保存。你应该有一个隐藏字段在您的形式像

<%= f.hidden_field :issue_id %> 

如果这不是你需要请让我知道这样我就可以再次帮助解决方案。

+0

哦我的!!!我一直试图让这个工作这么久......这工作!谢谢。现在......这是做这件事的最好方法吗?当我为表单准备对象时,它包含issue_id,是否有更好的方法将该信息传递给注释#create controller actioN? –

相关问题