Я получаю сообщение "пациент успешно обновлен" после обновления объекта, но значения остаются неизменными в рельсах? - PullRequest
1 голос
/ 20 августа 2010

Извините, я действительно не знал, как сформулировать вопрос лучше, но вот моя проблема:

, когда я пытаюсь обновить или создать объект пациента в моем приложении rails, значения не передаются черезк модели, потому что, когда я пытаюсь создать нового пациента, я получаю ошибки проверки, которые я помещаю на место, я должен ввести значения (что я и сделал), и когда я обновляю существующий объект пациента, значения не изменяются, даже еслия получаю сообщение «успешно обновленный пациент»

есть идеи, почему это может быть?

раньше он работал нормально, и я ничего не менял в контроллере пациента или модели, чтобы онперестанете работать?

если вам нужен какой-либо код от меня, пожалуйста, просто дайте мне знать, что вам нужно.

контроллер создает и обновляет код:

class PatientsController < ApplicationController

  before_filter :require_user
  load_and_authorize_resource

  def new
    @patient = Patient.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @patient }
    end
  end

  def edit
    @patient = Patient.find(params[:id])
  end

  def create
    @patient = Patient.new(params[:patient])
    respond_to do |format|
      if @patient.save
        format.html { redirect_to(@patient, :notice => 'Patient was successfully created.') }
      else
        format.html { render :action => "new" }
      end
    end
  end

  def update
    @patient = Patient.find(params[:id])
    respond_to do |format|
      if @patient.update_attributes(params[:patient])
        format.html { redirect_to(@patient, :notice => 'Patient was successfully updated.') }
      else
        format.html { render :action => "edit" }
      end
    end
  end

end

Лог сервера:

  Parameters: {"commit"=>"Update", "authenticity_token"=>"7ypFp3DhLokjvqau06+EOOoEU2T/7UmU5OaAZuGxC1M=", "id"=>"4", "patient"=>{"occupation"=>"nothing", "blood_type"=>"O+", "next_of_kin"=>"mo man", "address"=>"arcklow", "m_name"=>"gfjhgjgfj", "date_of_first_admission(1i)"=>"2006", "tel_number"=>"45345435", "weight"=>"85.0", "date_of_first_admission(2i)"=>"3", "f_name"=>"Allan ", "date_of_first_admission(3i)"=>"3", "mobile_number"=>"43534543", "universal_ID"=>"bebo", "sex"=>"Female", "medical_history"=>"Wrist is", "height"=>"187.0", "family_history"=>"", "bmi"=>"15", "allergies"=>"", "date_of_birth(1i)"=>"1986", "date_of_birth(2i)"=>"8", "email"=>"allandx@gmail.com", "current_medication"=>"ibrufen", "date_of_birth(3i)"=>"17", "l_name"=>"Dixon"}}

WARNING: Can't mass-assign these protected attributes: occupation, blood_type, next_of_kin, address, m_name, date_of_first_admission(1i), tel_number, weight, date_of_first_admission(2i), f_name, date_of_first_admission(3i), mobile_number, universal_ID, sex, medical_history, height, family_history, bmi, allergies, date_of_birth(1i), date_of_birth(2i), email, current_medication, date_of_birth(3i), l_name


  [4;35;1mPatient Load (0.1ms)[0m   [0mSELECT "patients".id FROM "patients" WHERE ("patients"."email" = 'allandx@gmail.com' AND "patients".id  4) LIMIT 1[0m
  [4;36;1mPatient Load (0.1ms)[0m   [0;1mSELECT "patients".id FROM "patients" WHERE ("patients"."universal_ID" = 'bebo' AND "patients".id  4) LIMIT 1[0m
  [4;35;1mPatient Load (0.1ms)[0m   [0mSELECT "patients".id FROM "patients" WHERE ("patients"."l_name" = 'Dixon' AND "patients".date_of_birth = '1986-08-17' AND "patients".f_name = 'Allan ' AND "patients".tel_number = 45345435 AND "patients".id  4)

код модели:

class Patient < ActiveRecord::Base

  #patient can have many apointments and vistis
  has_many :appointments, :dependent => :destroy
  has_many :visits, :dependent => :destroy

  # adding the photo as an attribute to patient 
  attr_accessible :photo
  has_attached_file :photo, :styles => { :small => "200x200>" }

  # validate  that fields are not blank
  validates_presence_of(:f_name, :l_name, :tel_number, :address)

  # validate that fields are numeric
  validates_numericality_of(:height, :weight, :bmi, :tel_number)

  #v alidate uniqueness of fields and users
  validates_uniqueness_of(:email, :universal_ID)
  validates_uniqueness_of(:l_name, :case_sensitve => false, :scope => [:date_of_birth, :f_name, :tel_number], :message => "User already existsts")

  #validate Email is right format
  validates_format_of(:email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :message => "Dosen't look like a real email address, please try again")

  #validate the date of birth
  validates_inclusion_of(:date_of_birth, :in => Date.civil(1900, 1, 1) .. Date.today, :message => "Must be between the year 1900 and today")


end

спасибо

1 Ответ

4 голосов
/ 20 августа 2010
 # adding the photo as an attribute to patient 
 attr_accessible :photo

Вот ваша проблема, может быть, вы хотели attr_accesor вместо attr_accesible?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...