私はショッピングカートアプリに取り組んでおり、注文モデルを持っています。carrier
、tracking_number
およびを含めるために、注文モデルに配送の詳細を追加しましたship_date
。updateshipping
注文を更新した後に別のリダイレクトを行うために呼び出されるメソッドを作成しました。
私はレールに慣れていないので、保存後にレールで条件付きリダイレクトを行うことができるかどうか、またはupdateshipping
メソッドにアクセスするためのカスタムルートを作成する必要があるかどうか(私が試したこと)、または正しい答えが新しいものを作成する必要があるかどうかはわかりません配送の詳細を保持するモデル。
メソッドを介してフォームの部分的な更新をリダイレクトしようとしましたupdateshipping
が、送信ボタンが機能しません。送信ボタンにカーソルを合わせると、URL が表示されません。[送信]をクリックすると、フォームの一部がリロードされているように見えます。後ですべてを削除する@order
と、form_for
正しく更新注文/更新メソッドに移動するため、問題が発生していると想定しform_for
ます (または、最初に注文モデルの一部です)。
<%= form_for(@order, :url => shipment_path, :html => { :method => "put" }) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :carrier %>
<%= f.text_field :carrier %>
<%= f.label :tracking_number, "Tracking #" %>
<%= f.text_field :tracking_number %>
<div class="form-actions">
<%= f.submit "Save changes", class: "btn btn-warning" %>
</div>
<% end %>
注文管理者
def updateshipping
raise params.inspect (code to update the order will come later)
end
レーキルート
shipment /shipmentdetails/:id(.:format) orders#shipment_details
shipment PUT /shipmentdetails/:id(.:format) orders#updateshipping
ルート.rb
match '/shipmentdetails/:id' => 'orders#shipment_details', :as => :shipment
match '/shipmentdetails/:id' => 'orders#updateshipping', :as => :shipment, via: :put
注文モデル
class Order < ActiveRecord::Base
attr_accessible :name, :address, :carrier, :tracking_number, :ship_date
has_many :line_items, dependent: :destroy
has_one :user
has_one :shop
validates :name, :address, presence: true
end