未定义的方法`保存'为15:Fixnum

时间:2013-07-18 13:12:55

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我正在关注本教程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

1 个答案:

答案 0 :(得分: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