我使用的是Rails 3.2和haml
我的观点中有很多这样的代码:
= link_to obj.get_title, @client ? agency_obj_path(@client.id, obj.get_id) : obj_path(obj.get_id)
...
= link_to t('aa.actions.edit_mini'), @client ? edit_agency_obj_path(@client.id, obj.get_id) : edit_obj_path(obj.get_id), class: 'action', title: t('aa.action_titles.objects.edit')
我想重构@client ? agency_obj_path(@client.id, obj.get_id) : obj_path(obj.get_id)
。可以用一些帮手吗?
怎么做?
答案 0 :(得分:0)
= link_to t('aa.actions.edit_mini'),edit_path(obj),
class: 'action', title: t('aa.action_titles.objects.edit')
现在在 applicaiton_helper.rb 或“agency_helper.rb”中定义您的edit_path助手方法(如果有)
注意:你不需要传递实例变量(@client),它可以在helper中使用。
#application_helper.rb
module ApplicationHelper
def edit_path(obj)
return edit_obj_path(obj.get_id) if @client.blank?
edit_agency_obj_path(@client.id, obj.get_id)
end
end