URLを解析しようとしています。たとえば、私が引き抜こうとしている場所:
~/locations/1 => [locations,1]
~/locations/1/comments => [locations,1]
~/locations/1/comments/22 => [locations,1]
~/locations/1/buildings/3 => [buildings,3]
~/locations/1/buildings/3/comments => [buildings,3]
~/locations/1/buildings/3/comments/34 => [buildings,3]
フォーマットはかなり一貫しています。配列から始めましたが、まだ失敗しているようです:
@request_path = request.path.downcase.split('/')
@comment_index = @request_path.index("comments").to_i
if @comment_index > 0
@request_path = @request_path.drop_while { |i| i.to_i >= @comment_index }
end
resource, id = @request_path.last(2)
誰かが手動で大文字の URL を入力した場合に備えて、小文字を追加しました。drop_while が機能していないようです。