Я создал ресурс пользователя через curl POST, и я пытаюсь сгенерировать ответ с помощью http Location заголовок. Вот мой routes.rbrails newbie: при создании ресурса рендер: местоположение возвращает localhost: 3000/users.id вместо localhost: 3000/users/id
resources: :users, only [:index, :create, :show]
# get 'users/:id', :to => 'users#view' # removed based on a suggestion
post 'users', :to => 'users#create', :as => 'user'
В users_controller (я пропустил код обработки исключений для упрощения кода
def create
user = User.create(name: params[:name])
render :json => JSON.pretty_generate(user.as_json), :status => 200, content_type: 'application/json', location: user
end
Реагировать имеет странное HTTP расположение заголовка. User 10 идентифицирован в качестве пользователей. 10, а не пользователей/10
HTTP/1.1 201 Created
Location: http://localhost:3000/users.10
Как я могу генерировать заголовок расположения, как это?
HTTP/1.1 201 Created
Location: http://localhost:3000/users/10
Thx!
user_path (пользователь) did not work? – Saravanan
На самом деле вы можете заменить действие 'view' на' show' и использовать маршрут ресурса по умолчанию. –
Saravanan, user_path() дал тот же результат (users.10). D-side, thx для предложения для маршрутов. Rb. –