问题标签 [nested-forms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
34743 浏览

ruby-on-rails - rails中的嵌套表单-访问has_many关系中的属性

我有一个用户和一个配置文件模型。一个用户可以有多个配置文件。在用户创建过程中,我只需要从我的用户模型中的个人资料部分(即电话号码)访问一个信息。因此,我试图通过attr_accessible. 我的 user.rb 看起来像这样。

我面临的问题是,当我尝试在 user.rb 的方法中调用 getter 方法 profile_mobile_number 时(该方法是私有的,尽管我认为没关系),我得到一个空值。我在 users/new.html.erb 表单中使用以下内容

我的问题是这样做的正确方法是什么?我应该使用<% f.fields_for :profile do |ff| -%><% f.fields_for :profiles do |ff| -%>(注意第二个是复数)。当我使用复数 :profiles 时,我什至看不到表单上的字段。我在这里想念什么?模型 user.rb 中需要使用的时态是什么?:profile_phone_number 还是 :profiles_phone_number?谢谢。

0 投票
1 回答
195 浏览

ruby-on-rails - 在整个应用程序的许多页面上放置的嵌套表单

我有一个带有嵌套属性的表单,我需要将其放置在许多不同的页面上。不一定是它所属的模型。所以我在营展示页面上有这个表格。用户信息创建得很好,但没有创建用户 has_many 角色和这些属性。我有许多其他的嵌套形式工作得很好,我无法弄清楚我缺少什么来完成这项工作。

_role.html.erb

_form.html.erb

这是我创建用户时发生的情况:

处理 UsersController#create (for 127.0.0.1 at 2010-02-14 22:15:16) [POST] 参数:{"user"=>{"name"=>"Chirs", "roles"=>{"name "=>"battalion"}, "company_id"=>"nil", "position"=>"营长", "email"=>"slkdfj@dlkfj.com", "battalion_id"=>"1"}, "commit"=>"Register", "action"=>"create", "authenticity_token"=>"PcGbsQNG7wKKPDZTM+JGry/a1aBWZuoyaCNwlqlCJ0g=", "controller"=>"users"}

我只是不触发角色的创建操作。

看起来这应该很简单,我唯一的猜测是让它远离用户模型会造成问题。是否应该是 form_for @battalions 然后将用户嵌套和角色嵌套,这是三个级别,看起来不正确。

任何帮助将不胜感激。

0 投票
1 回答
106 浏览

ruby-on-rails - 除了新属性之外,表单正在创建已加载的属性,我如何忽略第一个?

在我的应用程序中,您:

  1. 让管理员用户登录并且该用户具有角色(单独的模型),然后我使用 declarative_authorization 插件来授予对某些区域的访问权限。

  2. 该管理员用户还可以在系统中注册新用户,当他们这样做(使用 Authlogic)时,他们会填写一个包含该新用户角色的嵌套表单。

所以发生的事情是 admin 用户的角色由 declarative_authorization 加载,然后使用 has_many_nested_attributes 的嵌套表单正在加载现有角色以及新用户的新角色(用户可以有很多角色)。

有什么方法可以告诉正在创建的新用户忽略分配给 current_user 的角色,只为新用户创建表单中的角色?

我已经查看了很多不同的东西,但是这些嵌套属性似乎变得更加复杂。

提前致谢。

0 投票
1 回答
870 浏览

ruby-on-rails - 带有星期几的复杂模型的rails构建方法

我有一组嵌套模型用于存储各个房间的价格。

IE。

每个模型都有必要的 accept_nested_attributes_for 和 has_many belongs_to 关联,我有一个表单和一个构建方法,非常适合初始创建。

我的问题是如何制作一个更智能的控制器,如果它不存在则构建该字段,或者如果存在则从它读取(并且不构建它)。目前它仅适用于初始输入,否则它会尝试构建比可能更多的字段并在重新提交时中断。

试过了

room_rates 数据库

形式

0 投票
1 回答
287 浏览

ruby-on-rails - Rails 复杂的形式和排序与构建

我有类似于最近Ryan Bates 截屏视频的复杂形式

然而,嵌套元素工作正常。我正在通过以当天价格为输入的表单创建或更新诸如此类的数据网格。当他们留下一个空白时,我的问题就开始了。我有用于不保存 nils 的 nested_attributes_for 选项,它可以工作,如果它们只在特定行中保存一个值,它会保存正确的日期,但是当重新加载时,它会将其放置在错误的列中。我不确定如何将值连续排列到表单中。IE 星期三的保存值将出现在星期一列(正确的行)。如果他们为一行保存所有值,则不会发生这种情况(然后它会完美运行)。

数据像这样存储在数据库中

ID OBJECT_ID DAYOFWEEK PRICE并显示如下

构建或显示这些值的控制器代码如下所示:

控制器

房间.html.erb

rate.html.erb

room_rates 模型(表格中的数据要去哪里)

在控制台中订购

0 投票
1 回答
184 浏览

ruby-on-rails - rails 验证依赖于多个元素

我一直在为几个不同的模型使用accepts_nested_attributes_for,但我遇到了一个奇怪的情况。

我可以通过顶部模型跳过创建空白,并且可以通过底部验证单个记录的存在,但是是否可以对一组记录进行最复杂的验证?

我有模型房间和价格。房间有_many Rates 并接受_nested_attributes_for Rates。

我可以用

但对于每个房间,有 7 条不同的记录(费率).. 总是 7 条,并从同一个表格一次提交。目前,如果他们只输入 1 天,它将允许它。但是我想验证所有 7 个必须存在。他们要么输入所有 7 并接受它,要么只输入 1 或 2 给他们一个错误。如果他们将所有 7 完全留空,则什么也不做。

对于nested_attirbutes,我还没有看到类似的东西,所以我想知道这是否可能。

0 投票
2 回答
989 浏览

ruby-on-rails - 如何在rails中以嵌套形式省略现有的子记录?

在我的应用程序中,用户有很多项目。我想创建一个“添加多个项目”表单,这样用户就可以一次创建多个项目

在我看来,最快的方法是制作一个用户表单,其中嵌套了项目字段,并省略用户字段。这样,当表单提交时,用户将被保存并自动创建所有新的项目记录。

但是,我不希望现有项目显示在表单中。只有正在创建的新项目的空字段(来自@user.projects.build)。是否有我可以传递的参数或我可以在表单中更改的内容以省略现有的项目记录?

我正在使用 Ryan Bate 的复杂表单示例。代码工作正常。我只想省略以这种形式显示的现有项目。

0 投票
2 回答
1800 浏览

ruby-on-rails - 在 Rails 中将多层嵌套表单标记为“脏”

我在 Rails 中有一个三层多嵌套的表单。设置是这样的:项目有很多里程碑,里程碑有很多笔记。目标是让页面内的所有内容都可以使用 JavaScript 进行编辑,我们可以在页面内向一个项目添加多个新里程碑,并向新的和现有的里程碑添加新的注释。

一切都按预期工作,除了当我向现有里程碑添加新注释时(新里程碑在向它们添加注释时工作正常),除非我编辑任何实际属于里程碑的字段来标记,否则新注释不会保存表格“脏”/已编辑。

有没有办法标记里程碑,以便保存已添加的新注释?

编辑:抱歉,很难粘贴所有代码,因为有很多部分,但这里是:

楷模

我正在使用 Ryan Bates 的组合助手/JS 代码的基于 jQuery 的不显眼版本来完成这项工作。

应用程序助手

我在隐藏的 div 中呈现关联表单,然后使用以下 JavaScript 找到它并根据需要添加它。

JavaScript

我猜我能想到的唯一其他相关代码将是 NotesController 中的 create 方法:

@owner ivar 在以下过滤器之前创建:

问题是,这一切似乎都很好,除非我向现有里程碑添加新注释。必须“触摸”里程碑才能保存新笔记,否则 Rails 不会注意。

0 投票
1 回答
536 浏览

ruby-on-rails - 嵌套表单子仅在父更改时更新

在此视频(10 秒)中,您可以看到嵌套属性仅在其父模型更改时才会更新。

使用 rails 3.0.0.beta 并且完整的项目在 github 上

型号及形式总结:

0 投票
1 回答
21153 浏览

ruby-on-rails - 如何访问嵌套参数

我想得到一些嵌套的参数。我有一个包含许多项目的订单,这些项目每个都有一个类型。我想从控制器创建方法中获取 type_id 参数。

原因是我希望用户能够在视图中创建新的 item_types。当他们这样做时,我使用 AJAX 调用将它们添加到数据库中。当他们发布表单时,我在 item_type_id 参数中获取 item_type 的名称,我想找到正确的 item_type 并将 id 设置为