У меня проблема с получением моего первого приложения (я новичок) для сохранения новой связанной записи.У меня есть две модели (пользователи и изображения) с ассоциацией has_many / own_to.Я настроил userController так, чтобы он мог создавать новую картинку, как показано ниже:
def new_picture
@user = User.find(current_user.id)
@picture = @user.pictures.build
end
def create_picture
@user = User.find(params[:id])
@picture = @user.pictures.build(params[:picture])
if @picture.save
flash[:notice] = "Your picture was successfully added."
redirect_to :action => 'show', :id => @user.id
else
render :template => "new_picture"
end
end
, и я использую
<%= link_to("add picture", :action => 'new_picture', :id => @user.id) if current_user %>
, чтобы добавить новую.Но я также хотел бы иметь возможность редактировать.Поэтому я обновил пользовательский контроллер новым кодом:
def edit_picture
@user = User.find(current_user.id)
@picture = @user.pictures.find(params[:id])
end
# When the user clicks the save button update record
def update_picture
@user = User.find(current_user.id)
@picture = @user.pictures.find(params[:picture])
respond_to do |format|
if @picture.update_attributes(params[:picture])
flash[:notice] = "Your picture was successfully updated."
redirect_to :action => 'show', :id => @user.id
else
render :template => "new_picture"
end
end
end
и добавил ссылку на редактирование в show.erb:
<%= link_to("edit picture", :action => 'edit_picture', :id => picture.id) if current_user %>
Он отлично загружает форму редактирования, с данными вправильное место, но при сохранении все, что он делает, дает мне ошибку 'ArgumentError in UsersController # update_picture' с кучей неизвестных ключей из моей таблицы изображений.
Может кто-нибудь объяснить, почему?Я чувствую, что есть одна часть головоломки, которую я не совсем понял здесь ...
Заранее спасибо!
ОБНОВЛЕНИЕ: Просмотр кода выглядит следующим образом:
<h1>New picture for <%= @user.name %></h1>
<% form_for :picture, @picture, :html => { :multipart => true }, :url => {:action => 'update_picture', :id => @user.id} do |f| %>