سؤال

ووو. سؤالي الأول.

ولدي شعور أنا تطل شيء أساسي جدا في بناء شكل لي. أنا باستخدام attachment_fu ولا يمكن الحصول على هذا النموذج لتمرير أي شيء إلى جانب بيانات الملف. A ملامح 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، الذي هو مفتاح خارجي في نموذج المستند. علقت على هذا كل ليلة، ولا يمكن التفكير في أي شيء جديد هذا الصباح. أي مساعدة ستكون كبيرة.

هل كانت مفيدة؟

المحلول

لوprofile_id سوف تحتاج شيئا مثل:

<%= f.hidden_field :profile_id %>

ما في وحدة التحكم الخاصة بك وسوف تحصل في استخدام params[:document][:profile_id] إذا لزم الأمر. وعلى الرغم من محاولة تخمين في ما تقوم به التعليمات البرمجية، وأظن أن params[:profile_id] تم بالفعل تعيين من أي طريق حصل لك وحدة التحكم هذه.

وأنا لا أدري لماذا كنت لا نرى أي شيء من أجل الوصف. وينبغي أن يأتي إلى جهاز تحكم كما params[:document][:description].

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top