私はこのチュートリアルに従っています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