2012-03-13 2 views
0

Я пытаюсь сделать что-то вроде этого:можно гнездиться метод вызывает на to_json

render :json => r.to_json(:methods => [:food_item => {:method => :price_value}]) 

, но это не работает. Возможно ли что-то подобное?

ТНХ

редактировать 1 никакой ассоциации

def food_item 
    MenuItem.find(food_id) 
end 
+0

Является ': food_item' ассоциированной модели? – NullRef

+0

Это метод, который выполняет MenuItem.find (id) - должен управляться вручную, так как есть два из них в этом классе. – timpone

+0

Check 4.1.2.2 Имя класса здесь: http://guides.rubyonrails.org/association_basics. HTML # детальная ассоциация ссылка Это звучит, как вы хотите, ассоциация как has_one: food_item,: class_name => "MenuItem" Или belongs_to: food_item,: class_name => "MenuItem",: foreign_key => " food_id " – bblack

ответ

1

Неужели food_item ассоциации ActiveRecord? Если это так, вы можете попробовать

render :json => r.to_json(:include => { :food_item => { :only => :price_value } }) 

Я уточню свой ответ в ответ на «edit 1». Во-первых, удалить метод food_item и добавить фактическое объединение вроде этого:

belongs_to :food_item, :class_name => "MenuItem", :foreign_key => "food_id" 

, а затем сделать

render :json => r.to_json(:include => { :food_item => { :only => [:price_value] } }) 
+0

проблема в том, что существуют другие элементы, такие как drink_item, dessert_item и т. Д. ... которые не будут работать в описанной структуре. Я уверен, что нужно управлять вручную. – timpone

+0

Почему они не работают? Почему бы просто не добавить 'belongs_to: drink_item,: class_name =>" MenuItem ",: foreign_key =>" drink_item "и' belongs_to: dessert_item,: class_name => "MenuItem",: foreign_key => "dessert_id" и т. Д. ? – bblack

+0

, вероятно, из двух отдельных, но indentical отношений в одну и ту же модель. Не совсем понятно почему (отсюда исходный вопрос). Хотелось бы, чтобы у меня был хороший ответ на этот вопрос - возможно, просто попробуем что-то собрать. Я ценю помощь, я просто не думаю, что это можно сделать. – timpone

Смежные вопросы