Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果页面通过链接从其他页面加载,则Rails表单不提交_Ruby On Rails - Fatal编程技术网

Ruby on rails 如果页面通过链接从其他页面加载,则Rails表单不提交

Ruby on rails 如果页面通过链接从其他页面加载,则Rails表单不提交,ruby-on-rails,Ruby On Rails,使用rails 4.2.0 视图:users/edit.html.erb视图用于点击用户控制器/模型的帐户设置表单。应用程序中正在使用designe,但designe/registrations.edit.html.erb视图正在用作更改密码表单 如果我通过其URL/users/:id/edit导航到“我的帐户设置”页面并进行编辑,则表单将提交罚款并正确更新属性 问题: 如果您通过链接到达页面,则表单不会提交 我从一个单独的页面点击帐户设置链接, users/edit.html.erb视图加载

使用rails 4.2.0

视图:users/edit.html.erb视图用于点击用户控制器/模型的帐户设置表单。应用程序中正在使用designe,但designe/registrations.edit.html.erb视图正在用作更改密码表单

如果我通过其URL/users/:id/edit导航到“我的帐户设置”页面并进行编辑,则表单将提交罚款并正确更新属性

问题:

如果您通过链接到达页面,则表单不会提交

我从一个单独的页面点击帐户设置链接, users/edit.html.erb视图加载 在“用户/编辑”视图中生成并编辑属性 单击提交按钮 表单未提交,未发送帖子,按钮未响应。 相对路线:

可能性:

我以前从未见过这种情况。关于解决方案或如何更好地调试的任何帮助/想法

编辑1:

users/edit.html.erb视图:


看起来您可能需要在表单中包含该方法:

<%= form_for(@user) do |f| %>


这是对这部分问题的回答:关于……有什么帮助/想法吗。。。如何更好地调试

对于表单问题,一个有用的调试工具是在浏览器中打开页面。选择此选项可查看页面源代码,并在字符串表单上搜索,以查看代码生成的html

例如,这是我的一个表单中的html:

<div class="form-inline">
    <div class="row">
    <form id="search-form" class="form-group" action="/locations" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="xxx" />
    <div class="input-group input-group-sm gx_ml_10 gx_mr_10">
      <input type="text" name="search" id="search" placeholder="Search for BBQ" class="form-control" />
     <span class="input-group-btn input-group-sm">
            <button type="submit" class="btn btn-primary">
                  <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
    </button></span>
   </div> <!-- "input-group" --> 
  </form>     
 </div>  <!-- row -->
</div> <!-- "form-inline" -->

我遇到了一个类似的问题:每当到达使用link_to的页面时,我都必须刷新以提交表单

我通过在application.html.erb视图的body标记中添加数据no turbolink=true解决了这个问题


通过查看解决了此问题

能否添加一些用户/edit.html.erb?听起来表单中的HTML可能有问题。请发布您的编辑表单代码确保,请参见上文。谢谢,你找到答案了吗?我有一个我认为是相同的问题:如果我用表单刷新页面或直接通过浏览器访问它,它就会提交;如果我从一个链接到达表单,它不会提交。嘿@TaylorT,很抱歉回复太晚。我将你的答案标记为正确,很好,谢谢你的回答!顺便说一句,我从不使用f.submit——它似乎不适合我,尽管它是有效的语法。谢谢你的帮助。我尝试更改我的提交erb以保存更改,:class=>按钮expand radius small-3 columns%>但仍然没有成功。提交按钮的呈现HTML如下所示。。。提交让我感到奇怪的是,通过在浏览器中键入URL导航到表单,表单可以正常工作。只有当使用链接到达有问题的表单时,才会出现这种情况。奇怪。我在答案中添加了哈希调试技术和一些注释。谢谢你的建议。我尝试插入:put方法作为参数,但没有成功。这可能是turbolinks未能触发JS导致提交按钮点击更新操作的问题吗?这是一个老问题,但今天发生在我身上,对于那些谷歌搜索和访问这里的人来说——禁用turbolinks是一个补丁,而不是修复。给我解决的是一个额外的谎言。仔细检查你的html@maayanNaveh是带有链接的页面中的额外div,或者是带有链接的页面中链接到?@DashielRosebark Huss的页面:
<%= form_for(@user) do |f| %>
<%= form_for(@user, method: :put) do |f| %>
<div class="form-inline">
    <div class="row">
    <form id="search-form" class="form-group" action="/locations" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="xxx" />
    <div class="input-group input-group-sm gx_ml_10 gx_mr_10">
      <input type="text" name="search" id="search" placeholder="Search for BBQ" class="form-control" />
     <span class="input-group-btn input-group-sm">
            <button type="submit" class="btn btn-primary">
                  <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
    </button></span>
   </div> <!-- "input-group" --> 
  </form>     
 </div>  <!-- row -->
</div> <!-- "form-inline" -->
<button type="submit" ...
flash[:info] = "Hash: #{params} User: #{@user.some_var_like_name}"