我有一个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。应用程序有很多问题。
答案 0 :(得分:0)
我实际上并不理解您的抱怨,但据我所知,您正试图将问题ID与评论一起保存。您应该在表单中有一个隐藏字段,如
<%= f.hidden_field :issue_id %>
如果这不是您需要的解决方案,请告诉我,以便我可以再次提供帮助。