Не удается сохранить данные из моей таблицы в хэш-карту в рельсах? - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь сохранить все полные имена пациентов в хэш-карте из моей таблицы базы данных, однако получаю следующую ошибку:

param is missing or the value is empty: patient 

в этой строке в моем контроллере пациентов:

def patient_params
      params.require(:patient).permit(:Full_Name, :Age, :Sex, :Address, :PPS, :Medical_Card)
end

Я не уверен, где я ошибаюсь, любая помощь будет принята с благодарностью!

пациенты_controller.rb

  def allP
    # print out all
    p=Hash.new
    current_user.patients.all.each do |patient|
        p.store("Full Name", patient.Full_Name)
    end
  end

index.html.erb

<%= button_to "Some Button", :method=> "allP" %>

Журнал ошибок

Started POST "/patients?method=allP" for 127.0.0.1 at 2019-03-14 00:36:54 +0000
Processing by PatientsController#create as HTML
  Parameters: {"authenticity_token"=>"lo2SRaVmEAHUdpqgknqT9iKPijEypaJ+8PX5Ad1igd/VTBbnRWsZy7akIVBx9c3eQnEmh6lljGm1sfEIDNs4Eg==", "met

hod"=>"allP"}
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ?  [["id", 2], ["LIMIT", 1
]]
  ↳ /Users/j/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activerecord-5.2.2/lib/active_record/log_subscriber.rb:98
Completed 400 Bad Request in 3ms (ActiveRecord: 0.3ms)



ActionController::ParameterMissing (param is missing or the value is empty: patient):

app/controllers/patients_controller.rb:83:in `patient_params'
app/controllers/patients_controller.rb:37:in `create'

1 Ответ

1 голос
/ 14 марта 2019

Проверьте эти параметры (отформатированные для удобства чтения):

Started POST "/patients?method=allP" for 127.0.0.1 at 2019-03-14 00:36:54 +0000
Processing by PatientsController#create as HTML
  Parameters: {
    "authenticity_token"=>"lo2SRaVmEAHUdpqgknqT9iKPijEypaJ+8PX5Ad1igd/VTBbnRWsZy7akIVBx9c3eQnEmh6lljGm1sfEIDNs4Eg==", 
    "method"=>"allP"
  }

Итак, когда вы говорите:

def patient_params
  params.require(:patient).permit(:Full_Name, :Age, :Sex, :Address, :PPS, :Medical_Card)
end

params.require(:patient) не удается, потому что, подождите его, paramsне включает :patient и вы, ну, require d.

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