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