这是我的表格:
<form action= "<%= store_post_store_comments_path(params[:id]) %>" method="post">
<div class='field'>
<textarea name="comment[comment]" id="" rows=6" cols="20"></textarea>
</div>
<span class='image'>
<input accept="image/jpeg,image/gif,image/png" type="file" name="comment[image]" id="" />
</span>
<input type="submit" value="Submit">
</form>
字符串
以下是控制器创建操作:
def create
@comment = current_user.store_comment.new(store_comment_params)
@comment.image.attach(params[:comment][:image])
puts "for console debugging"
puts store_comment_params
puts params[:comment][:comment]
puts params[:store_post_id]
puts params[:comment][:image]
if @comment.save
flash[:info] = 'your comment has been created'
redirect_to request.referrer
end
end
型
以下是商店评论模型:
class StoreComment < ApplicationRecord
belongs_to :store_post
belongs_to :user
has_one_attached :image
end
型
以下是商店注解参数:
private
def store_comment_params
params
.require(:comment)
.permit(:comment, :image)
.merge(store_post_id: params[:store_post_id])
end
型
控制台显示什么是因为“放置”:
{"comment"=>"this is a test image", "store_post_id"=>"26"}
this is a test image
26
型
它不输出有关图像的任何信息
1条答案
按热度按时间nsc4cvqm1#
根据Rails Guide https://guides.rubyonrails.org/v7.1/form_helpers.html:
文件上传时最重要的一点是,渲染表单的enctype属性必须设置为“multipart/form-data”。如果在form_with中使用file_field,这将自动完成。您也可以手动设置该属性:
<%= form_with url:“/uploads”,multipart:true do|形式|%> <%= file_field_tag:picture %><% end %>
所以要么加上
字符串
或使用所提供的帮助。