0

请参考这个问题:相同的问题另一个类似的问题

我似乎无法让我的work脚手架包含从回形针到 JSON 的图像 URL。我需要这个 url 来对 dom 做一些 ajax 操作。

据我了解,您在模型中添加了一个 def,然后在控制器中的 format.json 中添加了额外的一行。

当我将 @work.avatar_url 添加到我的控制器方法def create时,它会引发语法错误

syntax error, unexpected ',', expecting tASSOC

我对 Rails 和 MVC 真的很陌生。所有的答案都让它听起来很容易。不幸的是,我只是猜测和检查......

控制器链接:works_controller.rb

我的定义创建

def create
    @work = Work.new(params[:work])


    respond_to do |format|
      if @work.save
        format.html { redirect_to @work, notice: 'Work was successfully created.' }
        format.json { render json: @work, status: :created, location: @work }
      else
        format.html { render action: "new" }
        format.json { render json: @work.errors, status: :unprocessable_entity }
      end
    end
  end

Git 链接模型:work.rb

class Work < ActiveRecord::Base
  validates :name, :presence => true

  has_many  :categoryworks
  has_many :categories, :through => :categoryworks
  accepts_nested_attributes_for :categories
  attr_accessible :name, :subtitle, :category_ids, :svg, :post_a, :post_b, :post_c, :post_d, :avatar
  has_attached_file :avatar, :styles => { :medium => "1280x700>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"

   def avatar_url
     avatar.url(:medium)
   end

end

4

1 回答 1

1

尝试

format.json { render json: @work.as_json(:methods => [:avatar_url]), status: :created, location: @work }

而不是你用过的。

于 2013-07-18T06:20:38.430 回答