似乎无法将变量传递给我的控制器

时间:2011-11-24 22:57:47

标签: ruby-on-rails

我有一个form_for评论。评论belongs_to问题。我有一个关于我的问题#show view的评论表,这是我的form_for的地方。我在我的问题#show controller action中创建了注释对象@comment。当我提交表单时,它会调用注释#create controller action。但是,我需要一个名为:issue_id的变量。我在#show view问题中有issue_id,我甚至可以将@comment对象设置为具有issue_id。但是,当它传递给注释#create controller时,issue_id不会在params [:comment]中传递,所以当注释被创建并保存时,它就不存在了。这是我的文件:

问题#show view:

<%= form_for @comment do |f| %>
    <%= render 'comment_fields', :f => f %>
    <%= f.submit "Submit" %>
<% end %>

问题#show controller:

  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

和注释#create controller创建注释:

  def create
    @comment = Comment.new(params[:comment])
    @comment.user = current_user
    @comment.save
    redirect_to :back
  end

我尝试在表单中添加一个隐藏字段,但它一直在创建一个值的哈希值,密钥将是issue_id,但我无法弄清楚如何设置隐藏字段的值,这很奇怪。我该如何正确地做到这一点?

PS评论属于问题。问题有很多评论。问题belongs_to apps。应用程序有很多问题。

1 个答案:

答案 0 :(得分:0)

我实际上并不理解您的抱怨,但据我所知,您正试图将问题ID与评论一起保存。您应该在表单中有一个隐藏字段,如

<%= f.hidden_field :issue_id %>

如果这不是您需要的解决方案,请告诉我,以便我可以再次提供帮助。