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))