1

这是每个循环的内容,names.each do|x| . 我需要用 #{x} 替换 v02,但语法有问题。请告诉我如何用 x 替换 v02。

<% @a = Count.find_by_user_id(@user) %>
<% @b = @a.v02 %>
<% @c = @b * 1.0 %>
<% @d = Carpart.find_by_part("v02") %>
<% @e = @d.requirement %>
<% @f = @c / @e %>
<% @g = @f * 100 %>
<% @h = [@g, 100].min %>
<% @i = Percentage.find_by_user_id(@user) %>
<% @i.update_attribute(:v02, @h) %>
V02 <%= @i.v02 %>%
<% @v02 = @i.v02 %>
4

2 回答 2

3

不完全确定这是否是您的意思,但是...您的意思是这样吗?

<% @a = Count.find_by_user_id(@user) %>
<% @b = @a.send(x) %>
<% @c = @b * 1.0 %>
<% @d = Carpart.find_by_part("#{x}") %>
<% @e = @d.requirement %>
<% @f = @c / @e %>
<% @g = @f * 100 %>
<% @h = [@g, 100].min %>
<% @i = Percentage.find_by_user_id(@user) %>
<% @i.update_attribute(x.to_sym, @h) %>
x <%= @i.send(x) %>%
<% @x = @i.send(x) %>
于 2012-08-27T01:47:04.177 回答
2

你可以使用 Ruby 的send

<% @b = @a.send(x) %>

或者

<% @b = @a.__send__(x) %>

我更喜欢后者只是因为,您通常不必担心有人会覆盖那个。

于 2012-08-27T01:41:38.747 回答