#ruby-on-rails #ruby-on-rails-4
#ruby-on-rails #ruby-on-rails-4
Вопрос:
Вместо того, чтобы использовать параметр id по умолчанию, я перенаправляю с помощью playerId
. Все работает как должно, но при обновлении записи проигрывателя она перенаправляется обратно к id
вместо playerId
и показывает эту ошибку undefined method
update’ for nil:NilClass`.
Маршруты
resources :players, param: :playerId
Контроллер
def update
respond_to do |format|
if @player.update(player_params)
format.html { redirect_to @player, notice: 'Player was successfully updated.' }
format.json { render :show, status: :ok, location: @player }
else
format.html { render :edit }
format.json { render json: @player.errors, status: :unprocessable_entity }
end
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_player
@player = Player.find_by(playerId: params[:playerId])
end
# Never trust parameters from the scary internet, only allow the white list through.
def player_params
params.require(:player).permit(:playerId, :first_name, :last_name, :teamId,:image)
end
Форма
<%= form_for(@player) do |f| %>
<%= f.label :playerId %><br>
<%= f.number_field :playerId %>
<%= f.label :first_name %><br>
<%= f.text_field :first_name %>
<%= f.label :last_name %><br>
<%= f.text_field :last_name %>
<%= f.label :teamId %><br>
<%= f.collection_select(:teamId, Team.all, :teamId, :name, { :prompt => 'Team Select', :selected => @player.teamId }) %>
<%= f.label :image %><br>
<%= f.file_field :image %>
<%= f.submit %>
<% end %>
Маршруты
root GET / pages#home
players GET /players(.:format) players#index
POST /players(.:format) players#create
new_player GET /players/new(.:format) players#new
edit_player GET /players/:playerId/edit(.:format) players#edit
player GET /players/:playerId(.:format) players#show
PATCH /players/:playerId(.:format) players#update
PUT /players/:playerId(.:format) players#update
DELETE /players/:playerId(.:format) players#destroy
Комментарии:
1. для html или json?
2. для html @TimmyVonHeiss
3. добавьте в вопрос свою форму, пожалуйста
4. Выполнено. удалены div и т.д.
5. что в вашем списке rake routes? Можете ли вы добавить результат к вопросу?