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:

  1. Warum wird mein Formular nicht angezeigt?
  2. Ist <%= builder.text_field %> korrekt?
War es hilfreich?

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

  1. 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
  2. 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
scroll top