Ruby on rails Rails表单_的方法:get无法更新视图
使用带有rails5的表单_,我想通过单击“获取”按钮来显示当前时间文本。但是文本没有更新 虽然我按下了按钮, 文本未更新 更新响应文本。 用户_controller.rb如下所示Ruby on rails Rails表单_的方法:get无法更新视图,ruby-on-rails,Ruby On Rails,使用带有rails5的表单_,我想通过单击“获取”按钮来显示当前时间文本。但是文本没有更新 虽然我按下了按钮, 文本未更新 更新响应文本。 用户_controller.rb如下所示 require 'date' class UsersController < ApplicationController def index @message = Time.now.to_s end end
require 'date'
class UsersController < ApplicationController
def index
@message = Time.now.to_s
end
end
<div><%= @message %></div>
<%= form_with method: :get, url: users_path do |form| %>
<%= form.submit 'SUBMIT'%>
<% end %>
<%= link_to 'LINK', { :controller => :users, :action => :index } %>
Started GET "/users?utf8=%E2%9C%93&commit=SUBMIT" for 127.0.0.1 at 2018-08-17 19:13:32 +0900
Processing by UsersController#index as JS
Parameters: {"utf8"=>"✓", "commit"=>"SUBMIT"}
Rendering users/index.html.erb within layouts/application
Rendered users/index.html.erb within layouts/application (4.7ms)
Completed 200 OK in 153ms (Views: 112.5ms | ActiveRecord: 0.0ms)
:users,:action=>:index}%>
或
:users,:action=>:index}%>
您可以尝试以下方法吗
<%= form_with method: :get, url: users_path, local: true do |form| %>
说明:
我在你的日志中注意到
由UsersController#索引为JS进行处理
这意味着表单是使用
format::js
提交的,因为form_with
现在默认为remote:true
,正如您所看到的(您不能执行remote:false
,而是使用local:true
),与默认情况下form\u for
和form\u标记whereremote:false
不同,您可以指定remote:true
当您单击Submit按钮时,是否可以从日志文件中添加日志?显示服务器日志以便单击按钮。form\u的语法可能不正确,请用'form_tag'检查它。或者尝试一下这种语法
你确定它在点击按钮时点击了index
操作吗?因为OP使用的是Rails 5,我相信form_tag
和form_for
很快就会被弃用,而赞成由,其中的一个是在此基础上实现和合并的。@Jay ArPolidario在这种情况下,我已经建议OP在注释中使用语法正确的形式_。@Gabbar感谢您的回答。虽然我尝试了第二个代码,但它不起作用。但是,我尝试了本地:真的,你在评论中提到的,然后它的工作!没问题3.
<%= form_with url: users_path, method: :get do |form| %>
<%= form.submit 'SUBMIT'%>
<%end%>
<%= link_to 'LINK', { :controller => :users, :action => :index } %>
<%= form_with method: :get, url: users_path, local: true do |form| %>