用户点击了像example.com/pizza这样的标签,并在帖子控制器中查看了所有贴有披萨标签的帖子。我希望人们也能看到所有带有披萨标签的“备用邮件”,但是在不同的控制器中。
rails routes会抛出一条错误消息,说明它已在使用中。什么是最好的方法呢?
的routes.rb
# TAGS
get 'tags/:tag', to: 'posts#index', as: :tag
get 'tags/:tag', to: 'alternateposts#index', as: :tag
答案 0 :(得分:0)
您不能使用相同的网址声明多个路线。 在您的情况下,seconde URL将超载您的第一个。
您必须使用单个控制器声明单个路由,并以相同方式返回<ItemsControl ItemsSource="{Binding MyDataCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<!--<DoubleAnimation Duration="0:0:0.100" Storyboard.Target="(Grid.RowDefinitions[2])" Storyboard.TargetProperty="Height" From="10" To="0" />-->
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="10"/>
</Grid.RowDefinitions>
<Image Source="{Binding CurrentImage}" Grid.Row="0" Stretch="Uniform" />
<TextBlock Grid.Row="1" Text="{Binding Title}" TextAlignment="Center" FontSize="16" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
和posts
。
答案 1 :(得分:0)
是的@Antoine Dewaele是对的。您没有声明具有相同URL的多个路由。 您的路线文件是这样的
get 'tags/:tag' => 'posts#index', :as => :tag
您的路线文件应该是这样的
get 'tags/:tag' => 'posts#index', :as => :tag
get 'all_pizza' => 'all_pizza#index', :as => :all_pizza