Ruby on rails 提交按钮的简单表单不';我什么也不做

Ruby on rails 提交按钮的简单表单不';我什么也不做,ruby-on-rails,ruby,Ruby On Rails,Ruby,下面是加载患者数据的代码,每次更新按钮都会对其进行更新,但单击“无任何变化”后,代码如下: <% emergency_case.patients.each do |patient| %> <tr> <%= simple_form_for (:patient),url: patients_edit_path(patient.id) do |f|%> <td>&

下面是加载患者数据的代码,每次更新按钮都会对其进行更新,但单击“无任何变化”后,代码如下:

 <% emergency_case.patients.each do |patient| %>
              <tr>

               <%= simple_form_for (:patient),url: patients_edit_path(patient.id) do |f|%>
               <td><%=f.input :name ,:input_html => { :value => patient.name},label: false %></td>
               <td><%=f.input :IDNumber ,:input_html => { :value => patient.IDNumber},label: false %></td>
               <td><%=f.input :age ,:input_html => { :value => patient.age},label: false %></td>
               <td><%=f.input :phone ,:input_html => { :value => patient.phone},label: false %></td>
               <td><%=f.input :address ,:input_html => { :value => patient.address},label: false %></td>
               <td><%=f.input :injury ,:input_html => { :value => patient.injury},label: false %></td>
               <td><%= f.collection_select(:state_id, State.all, :id, :state) %></td>
               <td><%= f.collection_select(:Act, Act.all, :id, :act) %></td>
                <td><%=f.submit %></td>
                <% end %>
              </tr>
          <% end %>

{:value=>patient.name},标签:false%>
{:value=>patient.IDNumber},标签:false%>
{:value=>patient.age},标签:false%>
{:value=>patient.phone},标签:false%>
{:value=>patient.address},标签:false%>
{:value=>patient.injury},标签:false%>
以下是paitent控制器,它正在为发送的paitent发送表单,以便对发送的paitent进行更新:

class PatientsController < ApplicationController
  before_action :set_patient, only: [:show, :edit, :update, :destroy]

  # GET /patients
  # GET /patients.json
  def index
    @patients = Patient.all
  end

  # GET /patients/1
  # GET /patients/1.json
  def show
  end

  # GET /patients/new
  def new
    @patient = Patient.new
  end

  # GET /patients/1/edit
  def edit
    @patient =Patient.find(params[:id])
  end

  # POST /patients
  # POST /patients.json
  def create
    @patient = Patient.new(patient_params)

    respond_to do |format|
      if @patient.save
        format.html { redirect_to @patient, notice: 'Patient was successfully created.' }
        format.json { render :show, status: :created, location: @patient }
      else
        format.html { render :new }
        format.json { render json: @patient.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /patients/1
  # PATCH/PUT /patients/1.json
  def update
    respond_to do |format|
      if @patient.update(patient_params)
        format.html { redirect_to @patient, notice: 'Patient was successfully updated.' }
        format.json { render :show, status: :ok, location: @patient }
      else
        format.html { render :edit }
        format.json { render json: @patient.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /patients/1
  # DELETE /patients/1.json
  def destroy
    @patient.destroy
    respond_to do |format|
      format.html { redirect_to patients_url, notice: 'Patient was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_patient
      @patient = Patient.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def patient_params
      params.require(:patient).permit(:name, :isDead, :status, :IDNumber, :emergency_case_id,:state_id,:address,:age,:phone,:injury,:act)
    end
end
class PatientsController
让简单表单为您完成url、方法等方面的工作,除非您有自定义内容。如果这不起作用,请发布更多关于您在帖子中遇到的错误的信息

<% emergency_case.patients.each do |patient| %>
  <tr>
    <%= simple_form_for patient do |f|%>
       ....#form stuff
       <td><%=f.submit %></td>
    <% end %>
  </tr>
<% end %>

..#表格材料

这里需要解决的几个问题:

<% emergency_case.patients.each do |patient| %>
   <%= content_tag :tr do %>
         <%= simple_form_for patient, method: :put do |f|%>
               <% attributes = %i(name IDNumber age phone address injury) %>
               <% patient.attributes do |attr| %>
                  <%= content_tag :td, f.input attr, input_html: { value: patient.send(attr)}, label: false %>
               <% end %>
               <%= content_tag :td, f.state_select :state_id %>
               <%= content_tag :td, f.collection_select(:Act, Act.all, :id, :act) %>
               <%= content_tag :td, f.submit %>
        <% end %>
    <% end %>
<% end %>


  • 始终用于属性(
    IDNumber
    is baad umkay)
  • 看看宝石
  • 循环是保持表单简洁高效的最佳方式
  • 您的表单正在发送到
    编辑
    操作——您需要发送到
    更新
    操作
  • #4将回答您的问题--
    患者编辑路径(patient.id)

    您需要的是发送到
    更新
    路径:
    患者路径(patient),方法::put
    。。。或者简单地说:
    patient,method::put