【发布时间】:2015-04-20 00:22:26
【问题描述】:
抱歉这个菜鸟问题,我对 RoR 有一些经验。为了快速了解背景,我想创建一个网站,将氨基酸转换为其匹配的 mRNA 密码子。我需要一个具有 3 列的固定、不可变的 64 行数据库。基本上,我想要的是用户将字符串输入到文本区域并将字符串分成3个字符串片段“ttcttaatt ...”-->(dnaCodon)[ttc][tta][att]-->匹配到返回匹配结果的数据库 (mrnaCodon) [uuc] [uua] [auu]。
我现在的问题是,我不希望用户查看此数据库,因此它全部包含在后端中。我已经将我的数据库作为模型制作了,所以它被隐藏了。如何将数据库作为模型查询然后进行模式匹配?
这是迁移文件
class CreateAaDataBases < ActiveRecord::Migration
def change
create_table :aa_data_bases do |t|
t.string :aaFullName
t.string :dnaCodon
t.string :mrnaCodon
t.timestamps
end
end
end
这是我在seeds.rb文件中创建并迁移的数据库
AaDataBases.create(aaFullName: "phenylalanine", dnaCodon:"ttt", mrnaCodon:"uuu")
AaDataBases.create(aaFullName: "phenylalanine",dnaCodon:"ttc",mrnaCodon:"uuc")
AaDataBases.create(aaFullName: "leucine", dnaCodon:"tta", mrnaCodon:"uua")
AaDataBases.create(aaFullName: "leucine", dnaCodon:"ttg", mrnaCodon:"uug")
AaDataBases.create(aaFullName: "leucine", dnaCodon:"ctt", mrnaCodon:"cuu")
AaDataBases.create(aaFullName: "leucine", dnaCodon:"ctc", mrnaCodon:"cuc")
AaDataBases.create(aaFullName: "leucine", dnaCodon:"cta", mrnaCodon:"cua")
AaDataBases.create(aaFullName: "leucine", dnaCodon:"ctg", mrnaCodon:"cug")
AaDataBases.create(aaFullName: "isoleucine", dnaCodon:"att", mrnaCodon:"auu")
AaDataBases.create(aaFullName: "isoleucine", dnaCodon:"atc", mrnaCodon:"auc")
还有另外 54 个条目以这种方式继续。
这是我的 AaDataBases 模型文件,我还没有添加任何内容。
class AaDataBases < ActiveRecord::Base
end
这是一个用于查询和返回序列的静态页面视图,在评论建议并从模型中遗漏代码后尝试了这个。一个简单的测试,看看是否可以访问数据库并返回匹配的值。
<% provide(:title, 'Sequence Results') %>
<h1>Sequence Results</h1>
<%= AaDataBases.where(dnaCodon: 'atc').each do |mrna|
puts mrna.aaFullName, mrna.mrnaCodon
end %>
测试输出这个,所以页面视图。 [AaDataBases id:10,aaFullName:“异亮氨酸”,dnaCodon:“atc”,mrnaCodon:“auc”,created_at:“2015-04-05 15:57:47”,updated_at:“2015-04-05 15:57 :47"]
【问题讨论】:
-
请发布您目前拥有的代码。
-
和你的数据库结构
-
@Jordan 正如我所说,我将数据库创建为模型,但它缺少视图和控制器。我希望数据库对用户保持隐藏。
-
@peter 添加了额外的代码
标签: ruby database sqlite model-view-controller