Gibt es eine Möglichkeit in Rails zu löschen und Redirect anders als in der Controller-Destroy-Aktion definiert?Rails - link_to - Aktion löschen - Umleiten zu einer anderen Seite mit einer anderen Controller-Aktion in einem Link_to
Auf der zum Angebot Show habe ich:
<% @deal.tenants.each do |guy| %>
<li>Tenant id #<%= guy.id %> - <%= link_to guy.last_name, deal_tenant_path(@deal, guy) %>
<%= link_to "delete", deal_tenant_path(@deal, guy), method: :delete, data: { confirm: "Are you sure you want to delete this tenant?"} %></li>
<% end %>
Auf der Mieter zeigen Ansicht Ich habe:
<li><%= link_to "Delete Tenant", [@deal, @tenant], method: :delete,
data: { confirm: "Are you sure you want to delete this tenant?"},
class: "delete" %></li>
Auf der Mieter Indexansicht habe ich
<% @deal.tenants.each do |tenant| %>
<li>Tenant id #<%= tenant.id %> - <%= link_to tenant.last_name, [@deal, tenant] %></li>
<li><%= link_to "Delete Tenant", deal_tenant_path(tenant.deal, tenant), method: :delete, data: { confirm: "Are you sure you want to delete this tenant?"} %></li>
<% end %>
Im Einklang Mit meinem Controller werde ich beim Löschen auf die @deal-Show umgeleitet. tenants_controller.rb
def destroy
@tenant.destroy
flash[:notice] = "Tenant has been deleted."
redirect_to @deal
end
Was passiert, wenn ich jedes Mal anders umgeleitet werden? Angenommen, ich möchte beim Löschen auf dieser Seite in der Ansicht der Mandantenshow bleiben, anstatt zur Seite "Deal-Show" weitergeleitet zu werden. Alternativ möchte ich zum Mieter-Index-Ansicht usw. weitergeleitet werden.
Muss ich verschiedene Aktionen mit verschiedenen Umleitungen in der Mieter-Controller definieren oder kann ich es innerhalb der Link_to tun?
Nested Routen:
resources :deals, only: [:index, :show, :create, :update, :destroy] do
scope '/siteadmin' do
resources :tenants
end
end
scope '/siteadmin' do
resources :deals, except: [:index, :show]
end
Deal.rb
class Deal < ApplicationRecord
has_many :tenants, dependent: :destroy
end
Tenant.rb
class Tenant < ApplicationRecord
belongs_to :deal
validates :deal_id, :first_name, :last_name, :age, presence: true
end
Vielen Dank ja das ist die Erklärung, die ich gesucht habe. – nicodo