2012-03-09 57 views
2

我的代码看起来像这样:不能在轨道预检check_box_tag

@all_ratings.each do |rating| 
    = check_box_tag "ratings[#{rating}]", session[:checkbox][rating], :id => "ratings_#{rating}" 
    ... 
= submit_tag 'Refresh', :id => "ratings_submit" 

通过保存其中的复选框被点击我希望能够到预检被点击的要求有后箱的状态经历和页面重新加载。我遇到的问题是上面的代码似乎不工作。我不确定是否因为我在末尾有:id => "ratings_#{rating}"位(这是此任务所必需的)。我检查了轨道api here,但是那样清晰如泥。先谢谢您的帮助!

干杯

(免责声明:此代码是HW 2 Coursera的软件即服务过程 - 我已经完成了大部分的硬件逻辑的,但是这最后一点我是无法理解,似乎是更的特质比一个主要的话题,因此我张贴在这里。)

+0

您需要添加一个布尔值来检查框。是否检查所有复选框?'= check_box_tag“ratings [#{rating}]”,session [:checkbox] [rating],true,:id =>“ratings_#{rating}” – prasvin 2012-03-09 08:44:09

+0

加上'true'确实预先检查了所有的框,并且加上'false'使得它们全部不被选中,但是当我放入一个可以采用布尔值的变量时,框的检查不会像我预期的那样改变 – oort 2012-03-09 14:35:51

+1

什么你添加了布尔变量吗?考虑到我有一个has_many评分的模型,比如视频,并定义了@视频,我会做'check_box_tag'评分[#{rating}]“,session [:checkbox] [rating],@video。 ratings.include?(rating),:id =>“ratings_#{rating}”'。 '@ video.ratings.include?(rating)'部分预先检查与当前视频相关的评级。什么是与您的评级模型相关的关联? – prasvin 2012-03-09 15:22:51

回答

1

你添加了什么布尔变量?考虑到我已经用的has_many评级模型,说的视频,并@video定义,我会做

= check_box_tag "ratings[#{rating}]", session[:checkbox][rating], @video.ratings.include?(rating), :id => "ratings_#{rating}". 

@video.ratings.include?(rating)部分预检查有关当前视频的收视率。什么是与您的评级模型相关的关联?

+0

嘿,我一直被困在同样的问题,连续2天,我似乎无法得到任何东西进入会议。我刚刚读到会议需要一张桌子让他们工作?我得到的所有会议都是“无”。你怎么看?提前致谢。 – 2012-06-09 21:33:40

+0

嗯,坦率地说,你不需要使用会话哈希来做这件事。您可以在其他地方阅读有关会话散列上述check_box_tag中的会话部分仅用于提供'value' html-attribute,如http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-check_box_tag所述。使用这两行和链接的文档来观察它的功能 - “= check_box_tag”ratings [average],'average',true'和'= check_box_tag“rating [good]”,'good',false'。如果你遇到障碍,你可以发布一个单独的问题。 – prasvin 2012-06-10 05:19:21