- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道我是否可以得到你关于关联和可能的数据类型的建议,我正在开始构建一个带有 postgres 后端的 Rails 应用程序。一个用户可以创建一个 Entry,它有_many :corrections 意味着多个用户可以纠正 Entry 的语言错误。
对我来说具有挑战性的部分是条目的内容被分解成单独的字符串,每个字符串都将被单独更正。例如,假设我创建了一个标题(字符串)“我的猫”和内容(文本列)“我的猫的名字是 Felix。他有黑头发”的条目,那么我希望能够为每个人单独提交更正。在我的 corrections_controller.rb 的新 Action 中,我这样做了
def new
@entry = Entry.find(params[:entry_id])
@title = @entry.title
@content = @entry.content.split('.')
@correction = Correction.new
end
所以在 views/corrections/new.html.erb 中,我这样做是为了在 Entry.rb 的内容中为标题和每个字符串创建一个表单元素
<%= @title %>
<%= form_for [@entry, @correction], url: {action: "create"}, html: {class: "nifty_form"} do |f| %>
<%= label_tag(:content, "Content") %>
<%= f.text_area :content, size: "60x12" %>
<%= f.submit "Create" %>
<% end %>
<hr>
<% @content.each do |c| %>
<%= c %>
<%= form_for [@entry, @correction], url: {action: "create"}, html: {class: "nifty_form"} do |f| %>
<%= label_tag(:content, "Content") %>
<%= f.text_area :content, size: "60x12" %>
<%= f.submit "Create" %>
<% end %>
<% end %>
现在,我在 Entry.title“My Cat”下方有一个更正表格,对于条目“My cat's name is Felix”和“He has black hair”的每个字符串。
这个有下面的问题(我觉得是有问题的)
虽然我将它设置为一个条目有_many :corrections,但这是为了让一个条目可以被许多不同的用户更正,每个用户都会提交一个更正。然而,结果是,例如,如果一个条目的内容栏中有十个句子,而另一个用户更正了这 10 个句子中的每一个,那么该用户将有 10 个单独的更正。
是否有推荐的方式可以提交,例如,我的假设条目的三个更正(“我的猫”、“我的猫的名字是 Felix”、“他的头发是黑色的”)合并为一个更正表中的行,将条目的每个句子都链接到用户的更正,这样当我从数据库中检索我的更正时,我可以显示标题、更正、第一句及其更正和第二句及其更正更正?我在想 hstore 可能是处理这个问题的方法,但我不确定如何去做。
根据您对问题 #1 的回答,您会将 corrections_controller.rb 中的 Entry 拆分为单独的实例变量还是做其他事情?
def new
@entry = Entry.find(params[:entry_id])
@title = @entry.title
@content = @entry.content.split('.')
@correction = Correction.new
end
3) 如果你会使用 postgres hstore,你会把要更正的句子设置为 key
并将更正后的句子设置为 value
>> Correction.create( :data => { "My Cat's name is Felix" => "My cat's name is Felix", "He has black hair" => "He has black fur"})
Correction.last.data Correction Load (1.0ms) SELECT "corrections".* FROM "corrections" ORDER BY "corrections"."id" DESC LIMIT 1 => {"He has black hair"=>"He has black fur", "My Cat's name is Felix"=>"My cat's name is Felix"}
根据我告诉你的,有没有更好的方法使用 Rails 和 postgres 来做到这一点?
请注意,在我用于启发的应用程序中,虽然有多个表单字段对应于要更正的字符串,但一旦用户单击“提交”,它们就会全部提交。这也是我的目标。
模型
Entry.rb (has a :title and a :content column)
has_many :corrections
Correction (has one column, :content, as well as :user_id and :entry_id)
belongs_to :entry
最佳答案
听起来 hstore
在这里工作得不是特别好。
既然您要将内容拆分成句子,为什么不将其反射(reflect)在数据库中呢?将内容存储在一个sentence
表中:
(sentence_id int4, entry_id int4, order int2, content text)
这也意味着您不需要对标题进行特殊处理,它只是一个带有order == 0
的句子。
然后每个更正都可以引用一个特定的句子,并且您不受每个用户拥有多少个更正的限制:
(correction_id int4, sentence_id int4, user_id int4, corrected_content text)
看起来简单多了。
关于ruby-on-rails - 使用 hstore 在数据库条目中创建可变数量的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085531/
情况:我想从数据条目列表导航回我的 PageViewController。 before 和 previous 函数起作用 func pageViewController(pageViewContro
尊敬的 StackOverflow 用户 我有一个 gradle 项目,我想将其工件转换为 osgi 包。在这个包中,我有: 我不想导出的包(可能不会出现在 list 的 Export-Package
我为我的 PendingIntent 设置了一个警报。现在我想在我的 Activity 中显示是否设置了此警报。 Intent service = new Intent(context, MyServ
我有 2 个表、作者和书籍 authors 包含唯一的 IDauthorId 书籍也包含此作为外键 我需要知道书籍数量最多的作者。如果 2 个或更多作者并列最多书籍,我需要显示这两位作者 我已经能够通
我有一个名为 prospective_shop 的表,其中一个列名称是“用户名”。用户名未设置为主键,但我想删除所有具有重复用户名的行。我怎样才能以最快的方式做到这一点? 我尝试执行以下操作: ALT
我现在可以添加条目了。在我的应用程序中,用户可以在他的日历上输入约会/事件。但在他这样做之前,它应该向他显示他已经添加的事件。它应该从日历中获取事件并将其显示给他。这该怎么做?我被困在这部分。提前致谢
#include #include #include #include #include #include char *msg; ssize_t write_proc(struct file
我想将大于 1024 个字符的字符串传递到我的模块(文件系统)。由于内核参数限制为 1024 个字符,someone recommended改为使用 sysfs。 我试图包括 this example
我正在尝试使用 SQLAlchemy 构建以下查询(用作包含查询的子查询,该查询定义名为 tbl_outer 的别名): SELECT max(tbl.ts) AS max_1 FROM tbl WH
假设我有两张 map : Map map1 = Map.of( "a", "1", "b", "2", "c", "3", "x
通过简化示例,假设您有以下数据集: A B C Name Group Amount Dave A 2 Mike B 3 Adam C 4
我正在尝试在我的服务器上创建一个三级域虚拟主机。我希望配置设置正确,但我得到一个 ERR_NAME_NOT_RESOLVED错误。 我已经读到我必须在某处“添加 DNS 条目”以便解析名称,但我该怎么
我需要一个可用于在逗号分隔列表中查找第 N 个条目的正则表达式。 例如,假设此列表如下所示: abc,def,4322,mail@mailinator.com,3321,alpha-beta,43 .
GWT 应用程序(在 Eclipse 中开发)的源代码管理忽略文件中的典型条目是什么? 最佳答案 我会推荐: 你leave the eclipse files (.project, .classpat
我必须创建显示表 (Tbl) 中所有字段的输出,并创建一个额外的列来按月计算每个客户的累计总和(例如,如果客户在 4 月份有两次销售,新列将具有这些销售额和两行中任何先前销售额的总和)。我能做的就这么
文档 ( http://kubernetes.io/docs/user-guide/configmap/ ) 上用于使用值的示例基于 ConfigMap,其中每个数据条目都是一对/值。例子: apiV
我有一个奇怪的错字,我一遍又一遍地犯,而不是实际工作我的打字技巧,我想编辑我的 AutoHotkey 脚本来弥补这一点。 有时,当我输入大写字母时,我会点击:按钮并输入“I:”,我希望 AHK 仅用字
使用 lgdt 初始化 GDT 并将其加载到 GDTR 后,稍后如何更新 GDT? 如果我使用 sgdt 命令获取基地址,然后更新或添加条目,然后使用 lgdt 再次重新加载,我是否正确?还有其他方法
我有两个应用程序共享同一个数据库,即 API 和 MVC5 应用程序。两者都在本地主机上运行良好,但在部署到我的 Azure 帐户时出现此错误 Configuration Error Descrip
我正在尝试修剪我拥有的一些文件。我将为您保存到目前为止我编写的野兽,并通过提供虚构代码使其保持简单。 让我们来看看这个数组: [System.String[]]$Collection = 'Invit
我是一名优秀的程序员,十分优秀!