2014-01-14 2 views
0

Я точно не знаю, что является правильным заголовком для этого вопроса, извините.Как создать несколько полей столбца таблицы, отправленных для формы

У меня есть модель Question, пользователь должен ввести разрешение 5 вопросов, а затем отправить их в то время в таблицу вопросов.

Проблема только в том, что она представляет только один вопрос, то есть последний вопрос.

Как я могу отправить все поля вопросов одновременно?

просмотров:

<% question_numbering = 0 %> 

<%= simple_form_for(@quiz, html: {class: 'form-vertical' }) do |f| %> 
    <%= render 'shared/error_messages_question' %> 

    <div> 
     <%= %> 
     question <%= question_numbering += 1 %><br> 
     <%= f.input_field :content, :rows => 3, :style => "width:80%", :placeholder => "enter your question." %><br> 
     question <%= question_numbering += 1 %><br> 
     <%= f.input_field :content, :rows => 3, :style => "width:80%", :placeholder => "enter your question." %><br> 
     question <%= question_numbering += 1 %><br> 
     <%= f.input_field :content, :rows => 3, :style => "width:80%", :placeholder => "enter your question." %><br> 
     question <%= question_numbering += 1 %><br> 
     <%= f.input_field :content, :rows => 3, :style => "width:80%", :placeholder => "enter your question." %><br> 
     question <%= question_numbering += 1 %><br> 
     <%= f.input_field :content, :rows => 3, :style => "width:80%", :placeholder => "enter your question." %><br> 
    </div> 
    <%= f.submit 'Submit', :class => "btn btn-default" %> 
<% end %> 

Контроллер:

class QuestionsController < ApplicationController 
    def index 
    @quiz = Question.new 
    @questioner = Questioner.new 
    end 

    def new 
    @quiz = Question.new(quiz_params) 
    end 

    def show 
    @quiz = Question.find(params[:id]) 
    end 

    def edit 
    @quiz = find(params[:id]) 
    raise "Question Not edited!" unless @quiz 
    end 

    def create 
    @quiz = Question.new(quiz_params) 

    if @quiz.save 
     flash[:warning] = 'You have successfully posted the questions!' 
     redirect_to questions_path 
    else 
     flash[:error] = "Please review the problems below." 
     # render 'new' 
     redirect_to questions_path 
    end 
    end 

    private 

    def quiz_params 
     params.require(:question).permit(:content, :answered, :questioner_id, :category_id) 
    end 
end 

ответ

1

Вы в настоящее время работают с вопросом ресурса - это только действительно имеет смысл создать один вопрос в то время, так как они не» t существуют как коллекция, но как отдельные единицы.

Если у вас был другой ресурс, например Quiz, в котором было много вопросов, тогда было бы разумно создать сразу несколько вопросов.

Вам необходимо создать Quiz как отдельный ресурс с помощью ассоциации has_many с вопросами.

Отъезд this great Railscast on nested forms, который должен помочь вам в этом (именно здесь я начал изучать Rails).

+0

@thanks мужчина, это похоже полезный. Я искал ресурс. Кажется, что литье было сделано для рельсов 2, могу ли я найти улучшенный учебник? – ben

+0

Да, у меня есть ресурс. у вопроса есть много вопросов. и вопрос принадлежит исследователю (атрибуты вопросника - это имя и адрес электронной почты) .. также есть ресурс категории, и вопрос относится к категории, а в категории много вопросов. Я хочу быть в состоянии представить много вопросов, заданных одним пользователем (вопросником) за раз. спасибо – ben

+0

Railscast не нова, но он по-прежнему хорош, и это все равно, как вы это сделаете в последней версии Rails (обновленная версия - это просто о том, как это сделать с javascript). – benjaminjosephw

Смежные вопросы