语法错误,意外'\ n',期待::或'['或'。'

时间:2015-09-12 22:46:54

标签: ruby-on-rails ruby imagemagick paperclip erb

我正在尝试使用Paperclip在我的应用上设置图像上传器,我唯一的问题是我不断收到Undefined Method错误。 我把它设置在github上,https://github.com/BBaughn1/savagelysaving

我的用户控制器:

class UserController < ApplicationController
    def create
      @user = User.create( user_params )
    end

    def destroy
        @user.image = nil
        @user.save
    end

    private

    # Use strong_parameters for attribute whitelisting
    # Be sure to update your create() and update() controller methods.

    def user_params
      params.require(:user).permit(:image)
    end
end

然后是我的Show.html.erb文件:

    <div id="post_content">
  <h1 class="title">
    <%= @post.title %>
  </h1>

  <p class="date">
    Submitted <%= time_ago_in_words(@post.created_at) %> Ago
    <% if user_signed_in? %>
      | <%= link_to 'Edit', edit_post_path(@post) %>
      | <%= link_to "Delete", post_path(@post), method: :delete, data: { confirm: 'Are you sure?' } %>
    <% end %>
  </p>

  <p class="body">
    <%= @post.body %>
    <%= image_tag @post.image.url(:medium) %>
  </p>

  <div id="comments">
    <%= render 'disqus' %>
  </div>
</div>

在我的post.rb文件中:

class Post < ActiveRecord::Base
  has_many :comments, dependent: :destroy
  validates :title, presence: true, length: { minimum: 5 }
  validates :body, presence: true

  attr_accessor :image

  has_attached_file :image, styles: { medium: "300x300>", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
end

在我的development.rb文件中:

Rails.application.configure do
  ***STUFF***

  Paperclip.options[:command_path] = "/usr/local/bin/"

端 并发布控制器:

 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 new
    @post = Post.new
    attr_accessor :image
  end

  def create
    attr_accessor :image 
    @post = Post.new(post_params)
    if @post.save
      redirect_to @post
    else
      render 'new'
    end
  end

  def show
    @post = Post.find(params[:id])
  end

  def edit
    @post = Post.find(params[:id])
  end

  def update
    @post = Post.find(params[:id])
    attr_accessor :image
    if @post.update(params[:post].permit(:title, :body, :image))
      redirect_to @post
    else
      render 'edit'
    end
  end

  def destroy
    @post = Post.find(params[:id])
    @post.destroy

    redirect_to root_path
  end

  private
    def post_params
      params.require(:post).permit(:title, :body, :image)
    end
end

1 个答案:

答案 0 :(得分:0)

我看着你的github,看看你是否犯了同样的错误。我想你忘了将imagemagick添加到你的development.rb文件中。在本地计算机上安装imagemagick时,需要查看它的安装位置; which convert哪里显示在哪里。它可能看起来像Paperclip.options[:command_path] = "/usr/local/bin/",如果没有,只需复制它显示的内容并编辑引号中的内容&#34; &#34 ;.

我希望这有助于我知道我在使用它时遇到了一些麻烦。