attachment_fu и multipart form_for - PullRequest
       26

attachment_fu и multipart form_for

0 голосов
/ 12 февраля 2010

Woo. Мой первый вопрос

У меня такое ощущение, что я упускаю что-то довольно простое в построении моей формы. Я использую attachment_fu и не могу получить эту форму для передачи чего-либо, кроме данных файла. Пользователь has_many профили и профиль has_many документы.

Моя форма выглядит так:

<%= 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 -%>

А вот и контроллер:

  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

В журналах отображаются все данные об изображении, которые публикуются, но я не могу передать описание или, что более важно, profile_id, который является внешним ключом в моей модели документа. Я застрял на этом всю ночь и не могу придумать ничего свежего этим утром. Любая помощь будет великолепна.

1 Ответ

0 голосов
/ 12 февраля 2010

Для profile_id вам понадобится что-то вроде:

<%= f.hidden_field :profile_id %>

Что в вашем контроллере вы получите при использовании params[:document][:profile_id] при необходимости. Несмотря на то, что я пытаюсь угадать, что делает ваш код, я подозреваю, что params[:profile_id] уже настроен с того маршрута, который привел вас к этому контроллеру.

Я не уверен, почему вы не видите ничего для описания. Он должен войти в ваш контроллер как params[:document][:description].

...