Ruby on rails 使用共享值rails在表单中创建多个对象
我有一个表格,需要创建3个记录。但是,在记录中有重复的名称和电子邮件地址,所有记录都需要相同。目前是这样的:Ruby on rails 使用共享值rails在表单中创建多个对象,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个表格,需要创建3个记录。但是,在记录中有重复的名称和电子邮件地址,所有记录都需要相同。目前是这样的: @competition = Competition.find(params[:competition_id]) @entries = Array.new(3) {@competition.entries.build()} 条目具有以下属性: 名称字符串 电子邮件字符串 标题字符串 说明-文本 图像-使用回形针上传 使用此当前方法,用户需要在3个不同的框中为其不同的条目输入其名称
@competition = Competition.find(params[:competition_id])
@entries = Array.new(3) {@competition.entries.build()}
条目具有以下属性:
- 名称字符串
- 电子邮件字符串
- 标题字符串
- 说明-文本
- 图像-使用回形针上传李>
rails阻止用户三次输入相同数据的方法是什么?是否将另一个对象发送到表单,然后在create方法中将它们组合在一起?尽管我担心这在验证时会有问题 您可以使用jQuery。将这些html选项添加到
name
字段标记中
:class => "same-same", :onchange => "$('.same-same').each(function(name) {$(this).val(name); }, [$(this).val()] );"
这将迭代类相同的所有输入标记,并将值更改为与上次更改的值相同
如果您只想显示第一个输入字段,则在条目上使用每个带索引的\u
表单循环,并隐藏带索引>0的条目的名称输入字段
不太确定您在这里要问什么,但是如果你从一个表单创建多个对象,你最好不要把这个逻辑放到一个“表单对象”中。。。请参阅此处找到的CodeClimate博客中的文章“重构Fat ActiveRecord模型的7种模式”(请参阅第3节“提取表单对象”):
简而言之,您可以创建一个自定义模型,包括一些必要的ActiveModel模块,然后创建一个自定义保存方法,例如
def save
if valid?
persist!
true
else
false
end
end
private
def persist!
@company = Company.create!(name: company_name)
@user = @company.users.create!(name: name, email: email)
end