通过创建一个简单的论坛来学习rails等。我希望用户能够将图像添加到他们创建的帖子中,但是当我尝试它时,它似乎不会添加/保存图片。 Paperclip正确安装,ImageMagick也是如此。这是代码。
(顺便说一下,我正在使用.haml)
编辑 :已将.permit更改为(:image_file),以便我现在可以发布,但它不会附加图片。
发布模型
class Post < ActiveRecord::Base
has_many :comments
belongs_to :user
has_attached_file :image, styles: {large: "600x600>", medium: "300x300>", thumb: "100x100#"}
validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
end
发布表格
= simple_form_for @post, html: { multipart: true } do |f|
= f.input :title
= f.input :content
= f.file_field :image
= f.submit
发布参数
def post_params
params.require(:post).permit(:title, :content, :image_file)
end
投放后
#post_content
%h1= @post.title
%p= @post.content
=image_tag @post.image.url(:medium)
后置控制器
class PostsController < ApplicationController
before_action :find_post, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!, except: [:index, :show]
def index
@posts = Post.all.order("created_at DESC")
end
def show
end
def new
@post = current_user.posts.build
end
def create
@post = current_user.posts.build(post_params)
if @post.save
redirect_to @post
else
render 'new'
end
end
def edit
end
def update
if @post.update(post_params)
redirect_to @post
else
render 'edit'
end
end
def destroy
@post.destroy
redirect_to root_path
end
private
def find_post
@post = Post.find(params[:id])
end
def post_params
params.require(:post).permit(:title, :content, :image_file)
end
end