我是Rails的初學者,我有一個Suplement控制器,我無法創建或編輯一個suplement(刪除工作正常)。我沒有收到任何錯誤,只要點擊並且控制檯中的所有內容都可以正常工作,就沒有任何反應。我嘗試了我所知道的一切(這並不多),但我找不到這樣的問題,類似的答案沒有幫助。我會很感激任何幫助,謝謝!Rails - 創建和更新操作不起作用
class SuplementsController < ApplicationController
before_action :set_suplement, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!
def index
@suplement = Suplement.all.order("created_at DESC")
end
def new
@suplement = Suplement.new
end
def create
@suplement = Suplement.new(suplement_params)
if @suplement.save
redirect_to '/suplements'
else
render '/suplements/new'
end
end
def show
end
def edit
end
def update
if @suplement.update(suplement_params)
redirect_to '/suplements'
else
redirect_to '/suplements/new'
end
end
def destroy
@suplement.destroy
redirect_to '/suplements'
end
private
def set_suplement
@suplement = Suplement.find(params[:id])
end
def suplement_params
params.require(:suplement).permit(:name,
:number_of_units,
:daily_dosage_in_units,
:number_of_days,
:suplement_cost
)
end
end
這裏有一個觀點:
<h1>Create new suplement</h1>
<%= form_for(@suplement) do |f| %>
<%= render 'form', suplement: @suplement %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
,這裏是部分的一種形式:
<%= form_for(@suplement) do |f| %>
<% if @suplement.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@suplement.errors.count, "error") %> prohibited this suplement from being saved:</h2>
<ul>
<% @suplement.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :number_of_units %>
<%= f.text_field :number_of_units %>
</div>
<div class="field">
<%= f.label :daily_dosage_in_units %>
<%= f.text_area :daily_dosage_in_units %>
</div>
<div class="field">
<%= f.label :number_of_days %>
<%= f.text_area :number_of_days %>
</div>
<div class="field">
<%= f.label :suplement_cost %>
<%= f.text_area :suplement_cost %>
</div>
<% end %>
而且我的模型:
class Suplement < ApplicationRecord
belongs_to :user
validates :name,
:number_of_units,
:daily_dosage_in_units,
:number_of_days,
:suplement_cost,
presence: true
end
和
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :suplements
end
當你說「沒有任何反應,當我點擊」你的意思是你甚至沒有看到一個POST請求擊中服務器? –
是的,絕對沒有。 Kkulikovskis想通了,這是新的和_form中的雙表單字段。 – nusound