J'ai deux modèles: project et todo. Le projet a beaucoup de todos. Donc je veux créer un formulaire, où je sélectionne la catégorie de projet de la liste déroulante, puis j'y ajoute un todo. Par exemple: J'ai les catégories suivantes: famille, travail, étude.Création d'un formulaire pour un objet associé
En formulaire dans la liste déroulante, je sélectionne 'étudier', puis dans le champ de texte, j'épelle un todo comme 'faire les devoirs pour lundi' et appuyez sur le bouton Soumettre.
project.rb
class Project < ActiveRecord::Base
has_many :todos
end
todo.rb
class Todo < ActiveRecord::Base
belongs_to :project
end
mon schéma de données:
create_table "projects", force: :cascade do |t|
t.string "title"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "todos", force: :cascade do |t|
t.string "text"
t.boolean "isCompleted"
t.integer "project_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
_form.html.erb
<%= form_for @project do |f| %>
<div class="form_control">
<%= f.select :title, options_for_select([["Work", "w"],
["Family", "f"],
["Study", "f"],
["TheRest", "t"]]) %>
</div>
<div class="form_control">
*** HERE I NEED TO FIGURE OUT HOW TO ADD SOME DATA TO todo.text ***
</div>
<div class="form_control">
<%= f.submit 'Add' %>
</div>
<% end %>
voilà comment je montrer tous les projets avec leur todos:
<% @projects.each do |project| %>
<h2> <%= project.title %> </h2>
<% project.todos.all.each do |todo| %>
<p><%= todo.text %> <%= check_box('tag', todo.__id__, {checked: todo.isCompleted}) %></p>
<% end %>
<% end %>
lien GitHub: https://github.com/NanoBreaker/taskmanager
Jetez un oeil à '' 'fields_for''' http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i- fields_for – ellitt
Quel est le problème auquel vous êtes confronté? – shiladitya