Je voudrais utiliser le ruby sur rails et mysql pour écrire un programme de test simple mais, dans ce temps, je ne peux pas mettre à jour l'enregistrement de la base de données. parce que j'utilise le "mid" pour remplacer la colonne "id" dans ce cas, que puis-je faire pour mettre à jour l'enregistrement?A propos de la mise à jour RoR DB Record
Problème:
Mysql::Error: Unknown column 'id' in 'where clause': UPDATE `messages` SET `message` = 'ccc', `subject` = 'aaa', `author` = 'bbb' WHERE `id` = NULL
Mon code:
def update
@message = Message.find(:first, :conditions => ["mid = ?", params[:id]])
if @message.update_attributes(params[:message])
flash[:notice] = 'Post was successfully updated.'
redirect_to gbook_path(:id => @message.mid)
else
format.html { render :action => "edit" }
end
end
Base de données:
CREATE TABLE `demo_development`.`message` (
`mid` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`subject` VARCHAR(30) NOT NULL ,
`author` VARCHAR(30) NOT NULL ,
`message` TEXT NOT NULL ,
`adddate` INT UNSIGNED NOT NULL
) ENGINE = MYISAM ;