1

これは、各ループ、names.each do |x|の内容です。。v02を#{x}に置き換える必要がありますが、構文に問題があります。v02をxに置き換える方法を教えてください。

<% @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 に答える