attachment_fuとマルチパートのform_for
-
20-09-2019 - |
質問
ウー。私の最初の質問。
私は自分のフォームの建設ではかなり基本的な何かを見下ろすてる感じを持っています。私は、ファイルデータのほかに何かを渡すためにこのフォームを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を、説明を渡したりすることはできません。私はすべての夜、この上で立ち往生し、今朝の新鮮なものを考えることはできません。すべてのヘルプは素晴らしいことだ。
解決
profile_id
のために、あなたのような何かが必要になります
<%= f.hidden_field :profile_id %>
どのコントローラ内で使用すると、必要に応じてparams[:document][:profile_id]
を使用してで取得します。
あなたのコードが何をしているかを推測しようとしているから、私はこのコントローラにあなたを持っています。
params[:profile_id]
がすでにどんなルートから設定されていると思われるが、
私はあなたが説明のために何も表示されない理由はわかりません。それはparams[:document][:description]
としてあなたのコントローラに入ってくるべきである。
所属していません StackOverflow