为对象的动态部分名称 [英] Dynamic partial name for an object
问题描述
渲染@some_object
将呈现 Rails.root /应用/视图/ some_objects / _some_object.html.erb
现在我要处理这部分将被渲染取决于其 DATA_TYPE
字段。例如:
类SomeObject< AR :: Base的
#一些难懂的方法至极我需要重写
高清partial_name
案例DATA_TYPE
当字符串
string_template
在文本
text_template
其他
blank_template
结束
结束
结束
我知道有 MODEL_NAME
, i18n_key
和一些其他国家,这是returnes型号名称,但哪一个是在我的渲染@object使用
情况?
修改
现在我已经停在一个没有触及模式最简单的解决方案。我删除了所有这种逻辑到 _some_object.html.erb
部分,所以它呈现的部分我需要自身内部:
< DIV CLASS ='claim_template_field'>
&其中;%=渲染/some_objects/#{f.object.data_type.downcase}_template,:F => F%>
< / DIV>
现在我已经停在一个没有触及模式最简单的解决方案。我删除了所有这种逻辑到_some_object.html.erb部分,所以它呈现的部分我需要自身内部:
< DIV CLASS ='claim_template_field'>
&其中;%=渲染/some_objects/#{f.object.data_type.downcase}_template,:F => F%>
< / DIV>
render @some_object
will render Rails.root/app/views/some_objects/_some_object.html.erb
Now I want to handle which partial will be rendered depends on its data_type
field. For example:
class SomeObject < AR::Base
# some magick method wich I need to rewrite
def partial_name
case data_type
when "String"
"string_template"
when "Text"
"text_template"
else
"blank_template"
end
end
end
I know there is model_name
, i18n_key
and some others, which are returnes model name, but which one is used in my render @object
case?
EDIT
Now I've stopped on the easiest solution that didn't touch models. I removed all this logic into _some_object.html.erb
partial, so it renders partial I need inside of itself:
<div class='claim_template_field'>
<%= render "/some_objects/#{f.object.data_type.downcase}_template", :f => f %>
</div>
Now I've stopped on the easiest solution that didn't touch models. I removed all this logic into _some_object.html.erb partial, so it renders partial I need inside of itself:
<div class='claim_template_field'>
<%= render "/some_objects/#{f.object.data_type.downcase}_template", :f => f %>
</div>
这篇关于为对象的动态部分名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!