0

我正在关注本教程,http ://guides.rubyonrails.org/ 。在本教程中,示例仅接受用户输入并完成。但是在我的代码中,在收到输入后,我需要通过调用 ResultModel 中定义的函数来获取结果。下面的代码不执行该函数,但 str8 保存我输入的输入(ncbi_ref_seq)。我需要的是通过调用函数 generate_result(result_params) 来处理输入,然后只保存。我怎样才能做到这一点 ?

我需要从函数中得到的是基因组序列、基因组样本和结合时间,它将引用 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()
如果你在最后添加 self ,它应该可以工作

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 回答