我想在index.json中添加一个修改后的变量。
视图/帖/ index.json.builder
json.array!(@posts) do |post|
post[:image_th] = post[:image].reverse.split('.', 2).join(".s").reverse
#this is the new line above
json.extract! post, :id, :title, :datum, :body, :image
#json.url post_url(post, format: :json)
end
所以它增加了一个'之前" .jpg"在字符串中。
这会出错:
无法写出未知属性`image_th'
如何在不创建迁移并从数据库访问它的情况下向index.json添加字段?
答案 0 :(得分:0)
如果您不需要保留它,则可以在attr_accessor :image_th
模型中使用Post
:
class Post < ActiveRecord::base
attr_accessor :image_th
end
无论如何,声称更多的是方法而不是模型中的字段
答案 1 :(得分:0)
尝试:
class Post < ActiveRecord::Base
# ...
def image_th
image.reverse.split('.', 2).join(".s").reverse
end
end
然后:
json.extract! post, :id, :title, :datum, :body, :image_th
编辑:
此方法可能会稍微清洁一下:
def image_th
image.sub(/\.[^\.]+$/, 's\0')
end