我正在用ruby on rails构建一个api。
我有使用回形针实现化身的用户。
我试图在json输出中访问我的回形针url,但它刚刚使我的heroku实例崩溃。这在本地非常有效。
我的用户模型片段

class User < ActiveRecord::Base

  has_attached_file :avatar, styles: { large: "600x600#", medium: "300x300#", thumb: "100x100#" }, default_url: "https://s3.amazonaws.com/whiztutor-marketing/photos/Profile300.png"
  validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/

end

为用户提供的jbuilder片段
json.cache! @user do
  json.id @user.id
  json.type @user.type
  json.f_name @user.f_name
  json.about @user.about
  json.email @user.email
  json.avatar_url @user.avatar.url(:medium)
  json.referral_code @user.referral_code
  json.education_level @user.education_level
  json.photo_url @user.avatar.to_json
  json.education_details @user.education_details.all
  json.all_subjects @user.subjects.all
  json.all_times @user.all_available_times.each do |time|
    json.day time.schedule.to_s
    json.time_block time.time_as_string
    json.next_occurrence time.schedule.next_occurrence(Time.now)
  end
end

我试着把它包装成this question上找到的方法,它以完全相同的方式破坏了服务器。我甚至可以运行控制台,直接通过服务器访问这些url。用jbuilder和回形针做的东西就是不能混在一起,我似乎无法弄清到底。任何帮助都非常感谢。

最佳答案

经过几个小时的研究,最终诊断出这个问题。
问题在于“json.cache! @user do”—特别是“.cache!”—我想节省一些服务器周期并加快速度,所以这是我最初实现的方式。
不管怎样,当我将jbuilder代码更新为以下代码时,我不再收到500个服务器错误。
我的用户工作jbuilder的片段

json.id @user.id
json.type @user.type
json.f_name @user.f_name
json.about @user.about
json.email @user.email
json.small_photo @user.profile_url_small
json.medium_photo @user.profile_url_medium
json.referral_code @user.referral_code
json.education_level @user.education_level
json.education_details @user.education_details.all
json.all_subjects @user.subjects.all
json.all_times @user.all_available_times.each do |time|
    json.day time.schedule.to_s
    json.time_block time.time_as_string
  json.next_occurrence time.schedule.next_occurrence(Time.now)
end

关于ruby-on-rails - 使用JBUILDER渲染回形针URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35930809/

10-10 05:12