Итак, скажем, у меня есть две :has_and_belongs_to_many
модели, которые объединены простой индексной таблицей.Вот как выглядит мой routs.rb:
match "foo/:id" => "foos#create", :via => :post
match "foo/:id" => "foos#update", :via => :put
match "foo/:id" => "foos#read", :via => :get
match "foo/:id" => "foos#delete", :via => :delete
match "foos/:id/bars" => "foos#add_bar", :via => :post
И последний маршрут (рассматриваемый) отображается в метод add_bar
в файле foo_controller.rb, который ожидает JSON-представление панели:
def add_bar
@bar = Bar.find(params[:bar][:id])
if @bar.nil?
@bar = Bar.create(params[:bar])
validation_error(@bar.errors) unless @bar.valid?
@bar.save!
end
@foo.bars << @bar
@foo.save!
respond(ResponseCode::OK, @bar)
end
Имеет ли это смысл?Я соответствую поведению проталкивания к коллекциям в рельсах, но мне это кажется грязным с точки зрения RESTful.Может я не прав.Мысли?