0

私はこのチュートリアルに従っていますhttp://guides.rubyonrails.org/。チュートリアルでは、サンプルはユーザーからの入力を受け入れるだけで完了です。しかし、私のコードでは、入力を受け取った後、ResultModel で定義された関数を呼び出して結果を取得する必要があります。以下のコードは関数を実行しませんが、str8 は入力した入力を保存します (ncbi_ref_seq)。関数 generate_result(result_params) を呼び出して入力を処理し、保存するだけです。どうやってやるの ?

関数から取得する必要があるのは、genome_seq、genome_sample、および NCBI_ref_seq (フォームの 1 i キー) を参照する結合時間です。

def create
    @generator = Generator.find(params[:generator_id])
    @result = @generator.results.create(params[:result])
    @result=@result.generate_result(result_params)
    @result= @result.save
    redirect_to generator_path(@post)
  end



def generate_result(result_params)
    ref_seq = self.ncbi_ref_seq
    Bio::NCBI.default_email = "haha@hotmail.com"
    fasta_sequence = Bio::NCBI::REST::EFetch.nucleotide(ref_seq,"fasta")
    fasta=Bio::FastaFormat.new(fasta_sequence)
    self.genome_seq = fasta.data
    self.genome_sample = fasta.definition    

    g=Generator.last
    p=self.genome_seq.scan(g.c_primer)
    self.binding_times= p.length()    
end
4

1 に答える 1

1

最後の行は最後に使用されたオブジェクトを返します...したがって、 self.binding_times= p.length() を返しまし

def generate_result(result_params)
    ref_seq = self.ncbi_ref_seq
    Bio::NCBI.default_email = "haha@hotmail.com"
    fasta_sequence = Bio::NCBI::REST::EFetch.nucleotide(ref_seq,"fasta")
    fasta=Bio::FastaFormat.new(fasta_sequence)
    self.genome_seq = fasta.data
    self.genome_sample = fasta.definition    

    g=Generator.last
    p=self.genome_seq.scan(g.c_primer)
    self.binding_times= p.length()    
    self
end
于 2013-07-18T13:33:27.130 に答える