当我通过link_to进入表单页面时,表单发布不起作用

时间:2016-04-14 08:38:05

标签: ruby-on-rails-4

我有一个用于存储"分享"的数据库。价值观,有很多评论。在分享的展示页面中,我显示了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实例吗?请有人帮帮我。

由于

1 个答案:

答案 0 :(得分:0)

好的,我从Form Submit button only works after reload得到了答案。 我在表格中没有表格。我把它从桌子上移开后,它工作正常。