Ruby on rails Rails单选按钮选项哈希

Ruby on rails Rails单选按钮选项哈希,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我的看法是: <%= radio_button_tag "recommendation_ratings[#{rec.recommendation.id}][rating]", '3'%> 使用评级变量,我在同一控制器操作中创建新记录: rate = Rating.new( :rating => rating, :label => rating_label) 创建新记录时,如何将评级分配给评级标签。例如: if rating == 1 rating_la

我的看法是:

<%= radio_button_tag "recommendation_ratings[#{rec.recommendation.id}][rating]", '3'%>
使用评级变量,我在同一控制器操作中创建新记录:

rate = Rating.new(
    :rating => rating,
    :label => rating_label)
创建新记录时,如何将评级分配给评级标签。例如:

if rating == 1 rating_label = "Fair"
我应该在控制器中执行此操作,还是可以将分级标签作为另一个属性添加到单选按钮标签中

更新:

我在控制器中尝试了case语句,但得到了一个命名错误“Undefined Method Rating”


将视图代码从使用
单选按钮标记
重构为块的
字段:

<%= fields_for :recommendation_ratings do |f| %>
  <% f.hidden_field :id, rec.recommendation.id %>
  <% f.radio_button :rating, 3 %>
<% end %>
并在某处添加一个助手方法,如下所示:

def rating_label(rating)
  %w{N/A Bad Fair Good}[rating.to_i]
end
现在,您可以创建一个新的
评级
对象,如下所示:

rate = Rating.new(
  :rating => rating,
  :label => rating_label(rating))
selected_rating = params[:recommendation_ratings]
rating = selected_rating[:rating]
recommendation_id = selected_rating[:id]
def rating_label(rating)
  %w{N/A Bad Fair Good}[rating.to_i]
end
rate = Rating.new(
  :rating => rating,
  :label => rating_label(rating))