【发布时间】:2015-04-25 16:36:13
【问题描述】:
我有一个将 DNA 密码子翻译成 MRNA 密码子的网站。我用 sqlite 创建了一个不可变的 64 行数据库模型,它有 3 列,然后我开始播种。基本上,我想要的是用户将字符串输入到文本区域并将字符串分成3个字符串片段“ttcttaatt ...”-->(dnaCodon)[ttc][tta][att]-->匹配到返回匹配结果的数据库 (mrnaCodon) [uuc] [uua] [auu]。我在我的一个静态页面上创建了一个搜索表单
我现在在搜索表单中遇到了我的路线问题。我想查询搜索,然后将其返回到同一页面或不同的页面——无论哪种方法更容易且更有意义。我最初在没有脚手架的情况下创建了我的数据库,因为我不希望用户可以访问它以进行更改。我最终创建了一个脚手架文件夹,所以我不知道为什么它没有连接到数据库。我的页面刷新但没有返回数据库查询
app/controllers/aa_data_bases_controller.rb
class AaDataBases < ApplicationController
def index
@aa_data_bases = AaDataBases.new
end
def create
if params[:search]
@aa_data_bases = AaDataBases.search(params[:search]).order("created_at DESC")
else
@aa_data_bases = AaDataBases.all.order('created_at DESC')
end
end
结束
views/static_pages/sequence.html.erb 问题路线就在这个静态页面中,在 form_tag("/sequence"... 当我运行 rails server 页面加载时,我可以输入但页面刷新并且没有任何反应
<% provide(:title, 'Sequence') %>
<h1>Sequence</h1>
<body>
<div class="content-container-1" id="div3">
<div class="container">
<div class="row text-center">
<h3>Add your sequence here</h3>
</div>
<div class="row text-center pt mb">
<div class="col-md-6 col-md-offset-3">
<br>
<%= form_tag("/sequence", :method => "AaDataBases#index", id: "search-form") do %>
<%= text_area_tag :search, params[:search], placeholder: "Translate DNA codons...",
:size =>"75x10", class: "form-control"%>
<% @aa_data_bases.each do |match| %>
<li><%= match.mrnaCodon %></li>
<% end %>
</div>
</div>
</div>
</div>
config/routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
match '/help', to: 'static_pages#help', via: 'get'
match '/seqresults', to: 'static_pages#seqresults', via: 'get'
match '/sequence', to: 'sequence_page#sequence', via: 'get'
get 'aa_data_bases/index'
get 'aa_data_bases/create'
end
模型/aa_data_bases.rb
class AaDataBases < ActiveRecord::Base
def self.search(query)
where("%#{query}%")
end
end
数据库
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
我的种子文件,有64个这样的条目
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")
静态页面控制器 app/controllers/static_pages_controller.rb
class StaticPagesController < ApplicationController
def home
end
def help
end
def about
end
def contact
end
def seqresults
end
end
app/controllers/sequence_page_controller.rb
class SequencePageController < ApplicationController
def sequence
end
end
【问题讨论】:
-
/sequence方法路由到static_pages控制器的sequence操作。但是,您已经共享了@987654332@ 的代码。请分享 static_pages 控制器的代码。 -
@UtsavKesharwani 添加了 static_pages 控制器
标签: ruby-on-rails ruby sqlite model-view-controller