将学区徽标与URL区域ID匹配

时间:2014-08-09 01:45:57

标签: css ruby url ruby-on-rails-4 conditional

目前,我已经创建了一个包含5个学区的应用程序。一切正常,因为每个学区都有app / assets / images中的学校徽标。

如果当前网址包含该学区的ID,我想显示每个学区的徽标。

Ex. 
###These URLs should all display the Logo for District 1
districts/1/students
districts/1  
districts/1/faculties

目前,如果网址与地区ID匹配,我找到了显示徽标的方法。 但是,由于我添加了除StaticPages Controller之外的更多控制器,因此效率非常低。

EX. 
 If I have a url like this /events/1
 I will get an error unless I add the Events Controller to the conditional

如何更改代码,以便在网址包含区域ID的情况下显示相应的区徽,而无需将其他所有控制器添加到条件?

视图

 ###StaticPages Controller
<% if  params[:controller] == 'static_pages' %>
    Welcoming Practices
  <% elsif @districts %>
    Welcoming Practices

  ###Checks district ID
  <% elsif @district.id == 1 %>
    <%= link_to "#{image_tag("bonsall_logo.png")} Bonsall Unified District".html_safe, "1" %>
  <% elsif @district.id == 2 %>
    <%= link_to "#{image_tag("chulavista_logo.png")} Chula Vista School District".html_safe %>
  <% elsif @district.id == 3 %>
    <%= link_to "#{image_tag("fallbrook_logo.gif")} Fallbrook School District".html_safe %>
  <% elsif @district.id == 4 %>
    <%= link_to "#{image_tag("oceanside_logo.gif")} Oceanside School District".html_safe %>
  <% elsif @district.id == 5 %>
    <%= link_to "#{image_tag("temecula_logo.png")} Temecula Valley School District".html_safe %>
<% end %> 

1 个答案:

答案 0 :(得分:1)

你有几个选择..其中两个是:

  • 您可以将路线设置为/:controller/:district_id格式,而不是从@district.id中选择图片,您可以根据params[:district_id]
  • 进行设置
  • 你也可以简单地将文件重命名为分区_#.jpg并包含基于分区的文件。
  • 您还可以确保始终将@district设置为当前区域

PS - 您应该将文件路径存储在District模型/表中,这样您就不必从硬编码值创建image_tags。