ジェネレーター has_many 結果 結果の属する_ジェネレーター
rails console : Result.find(1) を実行すると、generator_id= nil. どうしてこうなの???データを作成しているとき、ルートは次のようになります: localhost:3000/generator/1/results/new
次のコードでエラーは発生していません。しかし、これが Generator/index.html にあるのはどうしてですか
<% generator.results.each do |result| %>
<td><%= result.ncbi_ref_seq %></td>
<td><%= result.genome_sample %></td>
<td><%= result.binding_times %></td>
<%end%>
それらは空です。@generators.each は |generator| を行いますが、ジェネレーターの値を教えてくれます。つまり、このジェネレーターに属する結果の値は空ですが、ジェネレーターの値が表示されます。私が望むのは、すべてのジェネレーターとその結果値を表示することです。some1 は私を助けることができますか?
Generator.model
class Generator < ActiveRecord::Base
has_many :results , :dependent => :destroy
attr_accessible :choice, :primer_length, :random_primer_generated, :genome_sample, :generator_id
GeneratorController.rb
def index
@generators = Generator.all
end
def create
@generator = Generator.new(generator_params)
@generator.choice = params[:choice]
if params[:choice] == 'Randomly'
@generator.random_generate(generator_params)
elsif params[:choice] == 'No_of_ATGC'
@generator.no_ATGC(params[:no_A],params[:no_T],params[:no_G],params[:no_C])
elsif params[:choice] == 'Seating'
@generator.seating(params[:user_seq])
end
@generator.result_choice=params[:result_choice]
respond_to do |format|
if @generator.save
if @generator.result_choice == 'Yes'
format.html { redirect_to(new_generator_result_path(@generator)) }
else
format.html { redirect_to @generator, notice: 'Result was successfully created.' }
format.json { render action: 'show', status: :created, location: @generator }
end
else
format.html { render action: 'new' }
format.json { render json: @generator.errors, status: :unprocessable_entity }
end
end
end
結果モデル
class Result < ActiveRecord::Base
attr_accessible :ncbi_ref_seq,:genome_seq, :genome_sample
belongs_to :generator, foreign_key: "generator_id"
結果コントローラー
def index
@results = Result.all
end
def create
@result = Result.new(result_params)
@result.generate_result(result_params)
respond_to do |format|
if @result.save
format.html { redirect_to @result, notice: 'Result was successfully created.' }
format.json { render action: 'show', status: :created, location: @result }
else
format.html { render action: 'new' }
format.json { render json: @result.errors, status: :unprocessable_entity }
end
end
end
schema.rb
create_table "generators", force: true do |t|
t.integer "primer_length"
t.integer "no_A"
t.integer "no_T"
t.integer "no_G"
t.integer "no_C"
t.string "choice"
t.string "random_primer_generated"
t.string "user_seq"
t.string "c_primer"
t.string "result_choice"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "results", force: true do |t|
t.integer "generator_id"
t.string "ncbi_ref_seq"
t.string "genome_seq"
t.string "genome_sample"
t.integer "binding_times"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "results", ["generator_id"], name: "index_results_on_generator_id"
create_table "results_{:column_options=>{:null=>true}}", id: false, force: true do |t|
t.integer "result_id", null: false
t.integer "{:column_options=>{:null=>true}}_id", null: false
t.integer "generator_id"
t.string "ncbi_ref_seq"
t.string "genome_seq"
t.string "genome_sample"
t.integer "binding_times"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "results_{:column_options=>{:null=>true}}", ["generator_id"], name: "index_results_{:column_options=>{:null=>true}}_on_generator_id"