0

呜。我的第一个问题。

我有一种感觉,我忽略了我的表单构造中一些非常基本的东西。我正在使用 attachment_fu 并且无法让此表单传递除文件数据之外的任何内容。一个用户有_many 个配置文件和一个配置文件有_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,它是我的文档模型中的外键。我整晚都被困在这上面,今天早上想不出什么新鲜事。任何帮助都会很棒。

4

1 回答 1

0

对于profile_id你将需要类似的东西:

<%= f.hidden_field :profile_id %>

params[:document][:profile_id]如果需要,您将在控制器中使用哪个。尽管试图猜测您的代码在做什么,但我怀疑它params[:profile_id]已经从将您带到此控制器的任何路线设置。

我不知道为什么你没有看到任何描述。它应该以params[:document][:description].

于 2010-02-12T20:39:52.070 回答