我有一个数组arr = ["model", "engine", "year", ................]
,其中每个元素都是Car
模型的属性名称
我试图将这些特定的属性值推送到另一个数组
Car.all.each do |mycar|
another_array << arr.map{ |attr| mycar.attr }
end
这当然会给出预期的no method error .attr for <object>
。这样做的正确方法是什么?
的修改
我知道.send()
方法,但我发现当使用.send()时,使用attr-encrypted gem加密的某些字段无法正确解密。所以我必须尝试其他类似的东西
答案 0 :(得分:2)
你不需要任何特定的Rails / ActiveRecord。
如果您确定属性是“安全的”(即用户无法插入列表,或者您之前验证了方法名称),则可以使用ruby的send
:< / p>
mycar.send(attr) # dangerous
mycar.public_send(attr) # a bit less dangerous. Keep reading for the correct solution..
ActiveRecord确实为此提供了一个快捷方式(但会检查你):
mycar[attr]
答案 1 :(得分:0)
您可以使用 getActionBar().setTitle(null);
function curaareacityShortcode() {
$terms = get_terms('property_area');
$cura_city = get_terms('property_city');
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
echo '<ul>';
echo $cura_city;
foreach ( $terms as $term ) {
$term = sanitize_term( $term, 'property_area' );
$term_link = get_term_link( $term, 'property_area' );
echo '<li><i class="fa fa-map-marker" style="padding-right:15px"></i><a href="' . esc_url( $term_link ) . '">' . $term->name . ' (' . $term->count . ')' . '</a></li>';
}
echo '</ul>';
}
}