attachment_fu ومتعددة الأجزاء form_for
-
20-09-2019 - |
سؤال
ووو. سؤالي الأول.
ولدي شعور أنا تطل شيء أساسي جدا في بناء شكل لي. أنا باستخدام 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]
.