In Restless Rails (I'm not a great fan of Rest) you can do this:
Scenario model:
Code:
class Scenario < Base
has_many :answers
end
Answer model:
Code:
class Answer < Base
belongs_to :scenario
end
Answer controller
Code:
AnswerController < ApplicationController
def list
@answers = Answer.find(:all)
end
def show
@answer = Answer.find(params[:id])
end
def new
@answer = Answer.new
@scenarios = Scenario.find(:all)
end
def create
@answer = Answer.new(params[:answer])
if @answer.save
flash[:notice] = "New answer created"
redirect_to :action => 'show', :id => @answer
else
@scenarios = Scenario.find(:all)
render :action => 'new'
end
end
end
New template (new.html.erb):
Code:
<% form_tag(:action => 'create') do %>
<%= render :partial => 'form' %>
<%= submit_tag "Create" %>
<% end %>
Form partial (_form.html.erb):
Code:
<p><label for="answer_detail">Details: </label><br />
<%= text_field 'answer', 'detail' -%></p>
<p><label for="answer_scenario_id">Select screnario:</label><br />
<%= select(:answer, :scenario_id, @scenarios.collect{|s| [s.detail, s.id]}) -%></p>
<p><label for="answer_value">Value: </label><br />
<%= text_field 'answer', 'value' -%></p>
<p><label for="answer_correct">Answer is correct: </label>
<%= check_box("answer", "correct") -%></p>
This does mean you'll need to create the scenario first! This is also very much the starting point. You'll need to add validation to your models and probably code to catch problems, but hopefully it does show how the select code can be used.
Bookmarks