我有一个用于存储"分享"的数据库。价值观,有很多评论。在分享的展示页面中,我显示了3个热门评论,并且还有一个表格可以输入新的评论。问题是,当我在显示页面时按下刷新按钮(F5),并填写并提交评论表单时,它可以正常工作。但是,如果我使用link_to选项从任何其他页面到达显示页面,则审阅表单不起作用。在这种情况下,当我单击提交按钮时,rails服务器不会生成任何日志。
同样的事情也发生在"评论"的索引页面上。除了所有的评论,我还有一个表格(在共享节目页面中使用相同的代码,通过部分呈现)来输入新的评论。如果我在Review->中刷新索引页面,然后填写表单并提交,审查将保存在数据库中。但是,如果我通过"分享"的显示页面中的link_to到达"评论"索引页面,则评论不会保存在数据库中。我不确定我的代码中缺少什么。
这是我的代码:
显示控制器:
def show
@share = Share.find(params[:id])
@reviews = @share.reviews.order(priority: :asc).limit(3)
@newReview = @share.reviews.new
end
show.html.erb中的表单代码:(我在这里删除了html格式)
<%= form_for([@share,@newReview]) do |f| %>
<%= f.label :name %>
<%= f.text_field :name, autofocus: true %>
<%= f.label :priority %>
<%= f.select :priority, Review::PRIORITY, prompt: "Pick one" %>
<%= f.label :comment %>
<%= f.text_area :comment, cols: 80 %>
<%= f.submit 'Post Review'%>
<% end %>
如果我执行刷新按钮,此代码可以正常工作。但如果我通过以下编写的链接到达此展示页面,则无法正常工作:
<%= link_to(@share.name, @share) %>
我无法理解为什么。是因为链接中不包含newReview实例吗?请有人帮帮我。
由于
答案 0 :(得分:0)
好的,我从Form Submit button only works after reload得到了答案。 我在表格中没有表格。我把它从桌子上移开后,它工作正常。