小编Gar*_*che的帖子

表单提交按钮仅在重新加载后有效

我有一个构建表的索引页面,我试图允许用户编辑表中的行.我试图以最基本的方式做到这一点 - 没有javascript,ajax等,除非Rails提供它.

我的表在index方法中显示正常,并且有一个表单作为表中的最后一行,可用于添加新行.新表格工作正常.每行都有一个编辑链接,可以路由到控制器的编辑方法.控制器设置要编辑的对象,并使用要编辑的行中的表单呈现索引.我的问题是这个表单不会提交,但如果我刷新页面就会提交.

页面将在刷新后提交的事实非常令人困惑.我没有看到刷新会有什么不同然后点击链接(它应该仍然通过相同的路由,相同的变量对吗?)我看不到刷新前后的形式html有任何区别.有什么想法可能会发生什么?

我不确定甚至开始寻找什么代码,但是这里有.

index.html.erb

...
<tbody>
  <% @boms.each do |line| %>
   <% if line == @bom %>
     <%= render("form_in_table", form_objects: @bom , button_text: "Update") %>
    <% else %>
      <%= render("bom_in_table", line: line) %>
    <% end %>
  <% end %>
  <% if @bom.new_record? %>
    <%= render("form_in_table", form_objects: [@li, @bom] , button_text: "Add") %>
  <% end %>
</tbody>
...
Run Code Online (Sandbox Code Playgroud)

_form_in_table.html.erb

<%= form_for(form_objects, html: {class: "form-in-table"}) do |f| %>
  <tr>
    <td><%= f.text_field :quantity %></td>
    <td colspan="2">
      <%= f.select(:part_id,
                   options_from_collection_for_select(@parts, :id, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-4

20
推荐指数
4
解决办法
1万
查看次数

Rails - 控制器如何将实例变量传递给Views ...它可以被停止吗?

我理解并理解通过将@放在Controller中的变量名前面,它在任何View加载时都可用.这非常有用,但我想了解它的魔力.它是如何发生的,可以停止吗?

我试图使用继承来干燥我的CRUDdy资源控制器,将大部分逻辑放入其中ApplicationController.超类应该引用抽象变量@resource(对于单个资源),@resources(对于资源集合)和@parent_resource(对于@resource嵌套时的父资源),但理想情况下,视图将获得更具体的名称,例如; @customer,@customers@sales_territory分别.可以在不将所有对象(一次在抽象名称中,一次在具体名称中)的重复项发送到视图的情况下完成此操作?

在我写这篇文章时,想到的可能性是;

  1. 受保护的实例变量...... Ruby是否有这样的东西,如果是这样,那么Controller魔术会将它们传递给View?
  2. 在render/redirect之前将通用命名变量设置为nil
  3. 使用子类中定义的受保护的空方法来代替抽象的命名实例变量

如何实现这一目标的正确选择是什么?

ruby ruby-on-rails

0
推荐指数
1
解决办法
1309
查看次数

为什么有人不会省略关闭的php标签?

我知道您可以省略PHP纯文件的PHP结束标记,省略结束标记被认为是避免在输出中注入无关空格的好习惯.到目前为止我所看到的意见/标准清楚地表明我们应该省略纯PHP文件的结束标记,但是如果我们应该在文件混合HTML和PHP时放置结束标记则不太清楚.有些州直接说我们需要混合HTML和PHP的文件中的结束标记而没有任何关于原因的证据,而其他人只是通过解决纯PHP文件的情况而使其模糊不清.

是否有一些危险的副作用是要知道代码库是否省略了所有文件中的PHP结束标记,即使它们包含HTML?

php

0
推荐指数
1
解决办法
53
查看次数

标签 统计

ruby-on-rails ×2

php ×1

ruby ×1

ruby-on-rails-4 ×1