所以,我有一堆合作伙伴,他们的模板和图像存储在视图,公共/图像,公共/样式表,公共/ javascripts目录下。
例如,合作伙伴'foo'的图片存储在public/images/foo
此合作伙伴是一个实例变量@partner
,可在应用程序级别访问。
问题是,我在各处都这样做:<%= image_tag "/images/#{@partner}/image.jpg" %>
或在locations_controller中:<% redirect_to "/locations/#{@partner}/index" %>
......
问题的加载路径部分而不是使用帮助程序的一个原因:我们必须具体<% render :template => "/locations/#{@partner}/index" %>
,因为Rails默认查找/ locations / index。
我怎么能让自己更容易?我有@partner
后如何添加加载路径?
使用Ruby 1.8.7和Rails 2.3.4
答案 0 :(得分:1)
你在控制器中的重定向是非常糟糕的做法
你应该做点什么:redirect_to get_path(@partner)
然后在您的控制器中
def get_path(partner)
case partner
when "partner1"
partner1_path
...
end
end
关于你的照片,你应该创建一个帮手。
def get_pic(partner, image)
image_tag "/images/#{partner}/#{image}"
end
在你看来
<%= get_pic(@partner, "image.jpg" %>