Мне немного непонятно, как это работает.Это потому, что пользователю нужно назначить новый твит, поэтому используются @user и @tweet, а для редактирования твита @user не нужен, потому что в этом нет необходимости?
Краткий ответ - да".Более длинный ответ ...
Я не знаю, но я предполагаю, что маршруты выглядят примерно так:
resources :user do
resources :tweets, shallow: true
end
Что даст вам что-то вроде:
user_tweets GET /users/:user_id/tweets(.:format) tweets#index
POST /users/:user_id/tweets(.:format) tweets#create
new_user_tweet GET /users/:user_id/tweets/new(.:format) tweets#new
edit_tweet GET /tweets/:id/edit(.:format) tweets#edit
tweet GET /tweets/:id(.:format) tweets#show
PATCH /tweets/:id(.:format) tweets#update
PUT /tweets/:id(.:format) tweets#update
DELETE /tweets/:id(.:format) tweets#destroy
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
Итак, вы можете видеть, что для tweets#edit
, tweets#show
, tweets#update
и tweets#destroy
, :user_id
не требуется.Это связано с shallow: true
Подробнее о мелком раскладе вы можете прочитать в руководстве .