Ruby on Rails : 页面 link_to 后表单提交没有响应,直接加载或刷新时工作正常
Ruby on Rails : No response from form submission after the page is link_to and works fine when it is directly loaded or refreshed
我有一个包含 3 个字段的表单 (new.html.erb)。当我直接打开页面时它工作正常(http://localhost:3000/reviews/new).
我得到另一个名为 index.html.erb 的页面。其中有一个 link_to "new.html.erb",当我尝试从 'index' 到 'new' 拍摄电影并尝试填写表格并提交时,没有 response.The 页面像死了一样呆着。如果我尝试刷新页面,它工作正常。
new.html.erb
<!DOCTYPE html>
<html>
<% provide(:title, "Review-Add")%>
<body>
<h1>The Movie Recommender</h1>
<table border="1" >
<%= form_for(@review) do |f| %>
<tr>
<td colspan="2"><h2>Add a Review</h2></td>
</tr>
<tr>
<td>Movie Title:</td>
<td><%= f.text_field :title, size: 20 %></td>
</tr>
<tr>
<td>Movie Stars:</td>
<td><%= f.select(:stars, options_for_select([['1 star',1],['2 stars',2],['3 stars',3],['4 stars',4],['5 stars',5]])) %></td></tr>
<tr>
<td>Commentary:</td><td>
<%= f.text_area(:commentary, size: '30x5',:value => " Leave a comment ..." ) %>
</td></tr>
<tr>
<td><%= f.submit "Save" %></td>
<td align="right"><%= f.submit "Cancel", type: "reset" %></td>
</tr>
<tr>
<td colspan="2"><i>Rate the movie and leave a comment in the text area above</i></td></tr>
<% end %>
</table>
<hr/>
<%= link_to "Home", root_path %>
</body>
</html>
controller :
def new
@review =Review.new
end
def create
@review = Review.new(params.require(:review).permit(:stars, :title, :commentary))
if @review.save
redirect_to review_url(@review)
else
redirect_to reviews_url
end
end
所有 link_to 引用都会发生这种情况。
你能帮我解决这个问题吗?
rake 路线:
reviews GET /reviews(.:format) reviews#index
new_review GET /reviews/new(.:format) reviews#new
POST /reviews(.:format) reviews#create
review GET /reviews/:id(.:format) reviews#show
edit_review GET /reviews/:id/edit(.:format) reviews#edit
PATCH /reviews/:id(.:format) reviews#update
PUT /reviews/:id(.:format) reviews#update
DELETE /reviews/:id(.:format) reviews#destroy
这与会话有关吗?
我在这里上传了所有文件:ruby code
我是大佬!!
谢谢
检查并从 Gemfile 中找到 gem 'tubrolinks'
并删除它。正如@ptd 所说。
如果此操作失败,请检查您的 Web 浏览器是否有任何错误以获取其他线索。
我得到了答案,正如@ptd 所指出的那样,这是表格的问题 (new.html.erb) 我尝试调试表格。
由于标签被放置在 <%= form_for(@review) do |f| %>
旁边,因此 <table>
标签不起作用。
我将 form_for 标签移到了 <table>
之外,现在可以正常工作了。
我不知道确切原因,但调整标签后它工作正常。
我有一个包含 3 个字段的表单 (new.html.erb)。当我直接打开页面时它工作正常(http://localhost:3000/reviews/new).
我得到另一个名为 index.html.erb 的页面。其中有一个 link_to "new.html.erb",当我尝试从 'index' 到 'new' 拍摄电影并尝试填写表格并提交时,没有 response.The 页面像死了一样呆着。如果我尝试刷新页面,它工作正常。
new.html.erb
<!DOCTYPE html>
<html>
<% provide(:title, "Review-Add")%>
<body>
<h1>The Movie Recommender</h1>
<table border="1" >
<%= form_for(@review) do |f| %>
<tr>
<td colspan="2"><h2>Add a Review</h2></td>
</tr>
<tr>
<td>Movie Title:</td>
<td><%= f.text_field :title, size: 20 %></td>
</tr>
<tr>
<td>Movie Stars:</td>
<td><%= f.select(:stars, options_for_select([['1 star',1],['2 stars',2],['3 stars',3],['4 stars',4],['5 stars',5]])) %></td></tr>
<tr>
<td>Commentary:</td><td>
<%= f.text_area(:commentary, size: '30x5',:value => " Leave a comment ..." ) %>
</td></tr>
<tr>
<td><%= f.submit "Save" %></td>
<td align="right"><%= f.submit "Cancel", type: "reset" %></td>
</tr>
<tr>
<td colspan="2"><i>Rate the movie and leave a comment in the text area above</i></td></tr>
<% end %>
</table>
<hr/>
<%= link_to "Home", root_path %>
</body>
</html>
controller :
def new
@review =Review.new
end
def create
@review = Review.new(params.require(:review).permit(:stars, :title, :commentary))
if @review.save
redirect_to review_url(@review)
else
redirect_to reviews_url
end
end
所有 link_to 引用都会发生这种情况。
你能帮我解决这个问题吗?
rake 路线:
reviews GET /reviews(.:format) reviews#index
new_review GET /reviews/new(.:format) reviews#new
POST /reviews(.:format) reviews#create
review GET /reviews/:id(.:format) reviews#show
edit_review GET /reviews/:id/edit(.:format) reviews#edit
PATCH /reviews/:id(.:format) reviews#update
PUT /reviews/:id(.:format) reviews#update
DELETE /reviews/:id(.:format) reviews#destroy
这与会话有关吗?
我在这里上传了所有文件:ruby code
我是大佬!!
谢谢
检查并从 Gemfile 中找到 gem 'tubrolinks'
并删除它。正如@ptd 所说。
如果此操作失败,请检查您的 Web 浏览器是否有任何错误以获取其他线索。
我得到了答案,正如@ptd 所指出的那样,这是表格的问题 (new.html.erb) 我尝试调试表格。
由于标签被放置在 <%= form_for(@review) do |f| %>
旁边,因此 <table>
标签不起作用。
我将 form_for 标签移到了 <table>
之外,现在可以正常工作了。
我不知道确切原因,但调整标签后它工作正常。