Ruby on rails 如何将额外参数从控制器传递到模型
控制器中有两个API。我需要主_类别的图像和导航类别的图标。如何从控制器传递xtra参数,并在模型中区分此请求来自主目录,而这来自导航目录。请帮忙Ruby on rails 如何将额外参数从控制器传递到模型,ruby-on-rails,json,api,Ruby On Rails,Json,Api,控制器中有两个API。我需要主_类别的图像和导航类别的图标。如何从控制器传递xtra参数,并在模型中区分此请求来自主目录,而这来自导航目录。请帮忙 def main_category category = Category.all render :json => :include => {:success=> true,:data => category.as_json(@a,:only => [:name,:image_url])} end
def main_category
category = Category.all
render :json => :include => {:success=> true,:data => category.as_json(@a,:only => [:name,:image_url])}
end
def nav_category
category = Category.all
render :json => {:success=> true,:data => category.as_json(:only => [:name,:icon_url])}
end
模型中的as_json如下所示:
def as_json(options = { })
if self.id == nil
category = self.category
elsif(@a=='main')
h = super(options)
h[:image_url]= "http://#{$request.try(:host_with_port)}#{self.image.url}"
h
else
h = super(options)
h[:image_url]= "http://#{$request.try(:host_with_port)}#{self.image.url}"
h[:icon_url]= "http://#{$request.try(:host_with_port)}#{self.icon.url}"
h
end
end
我认为您需要的是将自定义选项传递给as_json方法来区分它们 控制器:
def main_category
categories = Category.all
render :json => {
:success=> true,
:data => categories.as_json(:only => [:name,:image_url], :category => "main")
}
end
def nav_category
categories = Category.all
render :json => {
:success=> true,
:data => categories.as_json(:only => [:name,:image_url], :category => "nav")
}
end
型号:
def as_json(options = { })
h = super(options)
if (options[:category] == 'main') {
h[:image_url]= "http://#{$request.try(:host_with_port)}#{self.image.url}"
} elsif (options[:category] == 'nav') {
h[:image_url]= "http://#{$request.try(:host_with_port)}#{self.image.url}"
h[:icon_url]= "http://#{$request.try(:host_with_port)}#{self.icon.url}"
}
h
end