Current_page不适用于更新

时间:2014-05-10 16:04:39

标签: ruby-on-rails ruby-on-rails-4

我有部分用于在财务应用中显示交易。

<%= form_for @transaction ... do |f| %>
  ...
  <%= transaction_name(@transaction) %>
  ...
<% end %>

在这个部分中,我需要以不同的方式显示transaction.name,具体取决于当前页面。

我的transaction_name帮手是:

def transaction_name(t)

  # Create name
  if t.name.present?
    name = t.name
  else
    name = 'Some default text'
  end

  # Update name if transaction has debt
  if t.debt.present? and !current_page?(debts_path) # <- problem is here
    name = t.debt.debtor.name + ' (' + name + ')'
  end

  name.html_safe
end

因此,如果用户不在debts_path,我想将Debtor名称添加到Transaction名称。在index路径中一切正常,但是当我更新事务时(它只是用更新的事务替换旧的事务表单),它总是显示Debtor名称,即使我在{{1} }。

当然,交易的更新通过debts_pathtransactions_controller位于debts_path。也许问题在这里,但实际上我在更新事务时不会更改debts_controller

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

if t.debt.present? && "#{action_name}"!="index"