2015-04-25 18 views
0

我有一個將DNA密碼子翻譯成MRNA密碼子的網站。我創建了一個不可變的不變的64行數據庫模型,其中3列使用了sqlite,然後我開始種子。基本上,我想要的是用戶輸入一個字符串到文本區域,並將字符串分解爲3個字符的字符串片段「ttcttaatt ...」 - >(dnaCodon)[ttc] [att] - >匹配返回匹配結果的數據庫(mrnaCodon)[uuc] [uua] [auu]。我在其中一個靜態頁面上創建了一個搜索表單如何在沒有軌道上的ruby視圖的情況下將路線編程到模型數據庫?

我現在在搜索表單中遇到了我的路由問題。我想查詢搜索,然後將其返回到同一頁面或不同的頁面 - 無論哪種方法更容易,更有意義。我最初創建我的數據庫沒有腳手架,因爲我不想讓用戶訪問它以進行更改。我最終創建了一個腳手架文件夾,所以我不知道爲什麼它沒有連接到數據庫。我的頁面刷新,但不會返回數據庫查詢

應用程序/控制器/ 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 

的意見/ static_pages/sequence.html.erb 它在這個靜態頁面的問題路由是,在form_tag(「/序列」... ...當我運行rails服務器的頁面加載,我可以輸入,但頁面刷新並沒有任何反應

<% 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 

DB

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") 

Con troller靜態頁面 應用程序/控制器/ static_pages_controller.rb

class StaticPagesController < ApplicationController 
    def home 
    end 

    def help 
    end 

    def about 
    end 

    def contact 
    end 

    def seqresults 
    end 

end 

應用程序/控制器/ sequence_page_controller.rb

class SequencePageController < ApplicationController 
    def sequence 
    end 
end 
+0

'/ sequence'方法路由到'static_pages'控制器的'sequence'動作。但是,您已經分享了'aa_data_bases_controller'的代碼。請分享static_pages控制器的代碼。 –

+0

@UtsavKesharwani添加了static_pages控制器 – aspears

回答

0

我看到一些問題在這裏:

  1. 的形式您的序列視圖發佈到具有GET的序列URL,其中有一個空的操作。所以它只是呈現序列視圖。這是你所看到的行爲,並且這是你應該期望的基於這是如何寫的。

  2. 我在這裏看不到任何視圖,它實際上會呈現@aa_data_bases的內容。你有什麼看法會消耗這個控制器變量並顯示結果集合?這樣的觀點已經存在嗎?如果沒有,你需要創建一個。

一些簡單建議:

  1. 您的結果不是一成不變的,所以我的順序頁面搬出靜態頁面控制器。您可能需要一個集成的搜索/結果頁面,以便您的用戶可以輕鬆完成搜索序列。通過將'/ sequence'移動到AaDataBases#索引方法開始。添加一個基本的索引方法,將@aa_data_bases的值設置爲一個空數組。您也可以將其配置爲處理search查詢參數。

  2. 在AaDataBasesController移動當前的指數方法的創建方法,因此它可以以POST請求響應

  3. 更改查看您已經創建,如果它不是顯示基於@aa_data_bases結果集的順序沒有空,並更新表單以使用POST。

  4. 確保您的路線包括indexcreate路線。

這些更改應該讓你到一組功能頁面。

+0

進行了一些編輯,但是您建議的某些內容超出了我的想象。你能提供進一步的指導嗎? – aspears

+0

請幫忙?添加更改 – aspears

相關問題