Rails 3.2 – akzeptiert_nested_attributes_for und view – Formular wird nicht angezeigt
-
13-12-2019 - |
Frage
Ich muss Models, Benutzer Und Lehrer.
Benutzer
class User < ActiveRecord::Base
...
has_one :teacher
accepts_nested_attributes_for :teacher
end
Lehrer
class Teacher < ActiveRecord::Base
attr_accessible :teacher_last_name
belongs_to :user
...
end
Ich habe auch ein Formular controllers/views/admins/new_teacher.hmtl.erb
<%= form_for @user, :url => create_teacher_url, :html => {:class => "form-horizontal"} do |f| %>
<%= field_set_tag do %>
<% f.fields_for :teacher do |builder| %>
<div class="control-group">
<%= builder.label :teacher_last_name, "Last name", :class => "control-label" %>
<div class="controls">
<%= builder.text_field %>
</div>
</div>
<% end %>
<%= f.submit "Create", :class => "btn btn-large btn-success" %>
<% end %>
Admin-Controller
class AdminsController < ApplicationController
def new_teacher
@user = User.new
@teacher = @user.build_teacher
end
end
Also, ich habe 2 Fragen:
- Warum wird mein Formular nicht angezeigt?
- Ist <%= builder.text_field %> korrekt?
Lösung
Ich habe eine Lösung gefunden.Es ist erstaunlich leicht zu fixieren.In Felder_Für sollten Sie <%= anstelle von <% verwenden.
In meinem Fall sieht meine Ansicht jetzt aus wie:
generasacodicetagpre.Andere Tipps
- Hast du ein neues gebaut?
teacher
Objekt, das das Formular verwenden soll?- Stellen Sie sicher, dass Ihr Controller so etwas enthält:@user.build_teacher
- Nein, Sie müssen das Attribut angeben, das Sie verwenden möchten.
builder.text_field :teacher_last_name
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow