2011-06-02 11 views
5

Obtuve un formulario que tiene un enlace anidado. El problema de que el campo de enlace está vacío en edición. Aquí es mi forma:Rieles Editar formulario que no muestra el elemento anidado

<h1>Editing kategori</h1> 
<%= simple_form_for(@konkurrancer, :url => {:action => 'update', :id => @konkurrancer.id }) do |f| %> 
    <%= f.simple_fields_for :link_attributes do |d| %> 
    <%= d.input :link, :label => 'Tracking url', :style => 'width:500;' %> 
    <% end %> 
    <%= f.button :submit, :value => 'Edit konkurrence' %> 
<% end %> 
<%= link_to 'Show', admin_konkurrancer_path %> | 
<%= link_to 'Back', admin_konkurrancer_path %> 

Mi modelo konkurrencer:

has_one :link 

Mi modelo de enlace:

class Link < ActiveRecord::Base 
belongs_to :konkurrancer 
accepts_nested_attributes_for :konkurrancer 
end 

Mi konkurrancer acción de edición:

def edit 
    @konkurrancer = Konkurrancer.find(params[:id]) 
    @konkurrancer.link_attributes.build 
    end 

Respuesta

8

1) Retirar de su modelo Link

accepts_nested_attributes_for :konkurrancer 

y añadir a su modelo de Konkurrancer

accepts_nested_attributes_for :link 

2) En edición acción del controlador eliminar

@konkurrancer.link_attributes.build 

y en el controlador de nueva acción Agregar

@konkurrances.build_link 

3) En el archivo de vista reemplaza

<%= f.simple_fields_for :link_attributes do |d| %> 

con

<%= f.simple_fields_for :link do |d| %> 
+0

me sale un error de ningún método –

+0

Indica las fuentes de su modelo Konkurrancer y controlador con acción de edición. – Hck

+0

He actualizado mi pregunta –

Cuestiones relacionadas