Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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 轨道部分形式_Ruby On Rails_Ruby On Rails 4_Partial Views - Fatal编程技术网

Ruby on rails 轨道部分形式

Ruby on rails 轨道部分形式,ruby-on-rails,ruby-on-rails-4,partial-views,Ruby On Rails,Ruby On Rails 4,Partial Views,我有一个引导模式,它是通过Rails部分呈现的,我需要这个模式与新建和编辑Rails视图共享。在这部分中,有一个我需要检查的一些用户的列表,当用户保存它时,一个参数被发送到主视图(新建或编辑),由用户选择。此外,我需要这个部分有已经选定的用户时,它是从编辑视图弹出那么如何做到这一点呢? 以下是它的屏幕截图: 我需要一个复选框下的选择栏为每个用户,也发送选定的“来电查看”,如果它是正确的调用它 我的新视图中的代码 <div class="form-group"> <%= f.

我有一个引导模式,它是通过Rails部分呈现的,我需要这个模式与新建编辑Rails视图共享。在这部分中,有一个我需要检查的一些用户的列表,当用户保存它时,一个参数被发送到主视图(新建或编辑),由用户选择。此外,我需要这个部分有已经选定的用户时,它是从编辑视图弹出那么如何做到这一点呢?

以下是它的屏幕截图:

我需要一个复选框下的选择栏为每个用户,也发送选定的“来电查看”,如果它是正确的调用它

我的新视图中的代码

<div class="form-group">
  <%= f.label :members %>
  <span class="glyphicon glyphicon-user"></span>
  <div class="row">
    <div class="col-sm-6">
    <% if user.empty? %>
      <p>Cannot assign memebers<p>
    <% else %>
      <!-- Button trigger modal -->
      <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal">
        Select Members
      </button>
      <%= render 'layouts/select_user' %>
    <% end %>
    </div>
  </div>
</div>

没有“调用者”,因为您的模式视图是内联HTML,所以您应该能够访问模式表单数据

如果我没有弄错,您正在尝试更新多个用户对象(通过选中每个用户对象旁边的复选框)

首先,从gui运行查询不是最好的方法,通过控制器操作(新建/编辑)填充这些用户对象。然后,您可以通过
:locals
散列将用户对象的集合传递给分部:

def new
  @users = User.where(:manager => false, :admin => false, :locked => false, :company_id => nil)
end

<%=render :partial => 'layouts/select_user', :locals => {:users => @users}
def新建
@users=User.where(:manager=>false,:admin=>false,:locked=>false,:company\u id=>nil)
结束
'layouts/select_user',:locals=>{:users=>@users}
现在,在局部查询中,您可以使用@users变量,而不是直接调用查询

复选框的引用对我来说似乎很松散。就用户对象而言,它意味着什么?该值是否会改变用户对象的含义(假设它是一个布尔值,它告诉您用户是否属于某一类型:雇员、雇主等)。如果是,请将新字段添加到用户表中。您可以将此新字段用作复选框

现在,对于更新这些用户,将@users对象包含在一个表单中,并创建一个控制器操作来处理此更新。当您从模式提交表单时,它将向您发送表单对象数组。您可以从控制器操作迭代这些表单对象,并相应地处理对象

下面是一个关于使用多个表单更新多个对象的示例

还可以查看Ryan Bates关于同一主题的railscasts插曲:




如果您询问如何完成此操作,请向我们提供一些您尝试过的视图和控制器代码可能会有所帮助。我需要一种方法来完成问题中所述的内容,如何在每个用户旁边添加复选框,以及分部(模式)如何将所选用户传递回其父视图?正如我所说,没有父视图。如果在“新建”视图的表单标记中有“呈现布局/选择用户”,则提交表单后,将发送部分中的所有值,因此只需在部分中添加f复选框。在本地分配中传递表单以从您的partialI访问变量需要复选框来选择一些用户,然后将他们添加到组织(组织有多个用户的关联)我的问题是partial如何提供(新建和编辑视图)选择的用户,以便他们使用他们创建组织或编辑现有的组织?我看了这些插曲,但我不知道如何使用字段_。对于我的具体情况,我不需要在用户表中添加列,仅用于在视图中选择他们,这没有意义,它实际上是一个视图工作,与数据库无关。同样感谢您提供的代码,我重构了视图并将查询移动到控制器。至于您的注释#2,您的表单将是部分的,其提交操作将表单内容(更新的选择框)转发到控制器。就像创建/更新操作一样,您需要再创建一个操作来处理多个用户对象。但我不希望发生这种情况,我将为您提供一个新视图的屏幕截图,也许它可以澄清我想要做什么。
def new
  @users = User.where(:manager => false, :admin => false, :locked => false, :company_id => nil)
end

<%=render :partial => 'layouts/select_user', :locals => {:users => @users}