Подтверждать, ли связаны модели

у меня есть два подмостков так называемый Post и другая Payments, эти связаны, у Post есть много Payments, если в таком случае умудряются удалить Post, Payment, связанный с этим Post очевидно исчезает, что мне хотелось бы делать, если в данном случае Post у него есть какой-то Payment, который выводил кнопку из строя бы удаления index Post (что пользователь не смог удалять это для того, чтобы не исчез payment), и что, если у него нет какого-то связанного payment, который borre.: как могло бы делать это? если кто-то помогает мне из-за fa, я пробовал делать это следующим способом, но он говорит мне, что payment он недействительный

<% if post.id != payment.post_id %>
<%= link_to 'Eliminar', post, method: :delete, data: { confirm: '¿Esta seguro que desea eliminar este post?' } %><%end%><%end%>
<% end %>
2
задан 05.04.2016, 20:06
2 ответа

Ты можешь создавать утверждение, настроенное в твоей модели Пост и способствовать тому, чтобы он только использовался с действием destroy в твоем драйвере Posts. Это не 'выведет кнопку из строя 'удалять' в форме, но не позволит, что исчез Post, когда бук Payments.

# app/models/post.rb

class Post < ActiveRecord::Base
  has_many :payments, dependent: :destroy
  validate :no_payments, on: :destroy # <= Aquí llamas tu validación

  def no_payments
    errors.add(:post_con_payments, "Post con payments") if
    self.payments.count > 0
  end
end

# app/models/payment.rb

class Payment < ActiveRecord::Base
  belongs_to :post
end

Хотя я не испытал этот код, я думаю, что оно должно функционировать. В противоположном случае, мы можем искать другой выбор.

1
ответ дан 24.11.2019, 14:41

Если твои модели связаны с belongs_to и has_many, ты должен бы быть способен это знать легко с:

if post.payments ...

С этой инструкцией ты достал бы все платежи, связанные с post. Также ты можешь использовать один post.payments.count чтобы знать число платежей.

Если они не связаны так, они это должны бы быть!!

0
ответ дан 24.11.2019, 14:41

Теги

Похожие вопросы