Активная Запись с Делегатом и условиями

Вы могли переопределить свойство RecognizesAccessKey ContentPresenter, который находится в шаблоне по умолчанию для маркировки. Например:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>
    <Grid.Resources>
      <Style x:Key="{x:Type Label}" BasedOn="{StaticResource {x:Type Label}}" TargetType="Label">
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="Label">
              <Border>
                <ContentPresenter
                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                  RecognizesAccessKey="False" />
              </Border>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    </Grid.Resources>
    <Label>_This is a test</Label>
  </Grid>
</Page>
30
задан Arslan Ali 3 November 2016 в 01:46
поделиться

1 ответ

Нет, вы не можете, но вы можете передать : allow_nil => true параметр, чтобы вернуть nil, если мастер равен nil.

class User < ActiveRecord::Base
  delegate :company, :to => :master, :allow_nil => true

  # ...
end

user.master = nil
user.company 
# => nil

user.master = <#User ...>
user.company 
# => ...

В противном случае вам нужно написать свой собственный метод вместо использования макроса делегата для более сложных параметров.

class User < ActiveRecord::Base
  # ...

  def company
    master.company if has_master?
  end

end
36
ответ дан 28 November 2019 в 00:14
поделиться
Другие вопросы по тегам:

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