2012-03-09 18 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