Pregunta

Woo. Mi primera pregunta.

Tengo la sensación de que estoy pasando por alto algo bastante básico en la construcción de mi forma. Estoy usando attachment_fu y no puedo obtener este formulario a pasar nada, además de los datos del archivo. A has_many perfiles de usuario y un perfil has_many documentos.

Mi forma se parece a esto:

<%= error_messages_for :document %>

<% form_for([@user, @profile, @document], :html => {:multipart => true }) do |f| -%>
  <p>
    <label for="document">Upload A document:</label>
    <%= f.file_field :uploaded_data %>
  </p>
 <%= f.label :description%>
 <%= f.text_field :description%>
  <p>
    <%= submit_tag 'Upload' %>
  </p>
<% end -%>

Y aquí está el controlador:

  before_filter :require_user, :get_profile

  def new
    @document = @profile.documents.build
  end

  def create
    @document = @profile.documents.build(params[:document])

    if @document.save
      flash[:notice] = 'Your document was successfully created.'
      redirect_to document_url(@document)     
    else
      render :action => :new
    end
  end

  private

  def get_profile
    @user = current_user
    @profile = @user.profiles.find(params[:profile_id])
  end

Los registros muestran todos los datos de imagen consiguiendo publicados, pero no pueden pasar a la descripción o, más importante aún, el profile_id, que es la clave externa en mi modelo de documento. Me he quedado atrapado en esto toda la noche, y no puedo pensar en nada fresco esta mañana. Cualquier ayuda sería grande.

¿Fue útil?

Solución

Para el profile_id necesitará algo como:

<%= f.hidden_field :profile_id %>

Lo que a su controlador obtendrá en el uso de params[:document][:profile_id] si es necesario. A pesar de tratar de adivinar lo que el código está haciendo, sospecho que params[:profile_id] ya está establecido de cualquier ruta por la que llegó a este controlador.

No estoy seguro de por qué usted no está viendo nada por la descripción. Hay que entra en tu controlador como params[:document][:description].

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top