2013-04-05 50 views
0

我是一位新的rails開發人員,我有一個rails應用程序,允許用戶發佈帖子,同時允許他們選擇複選框。我希望能夠手動查看用戶在發佈過程中檢查的所有帖子。現在一切都成功發佈,但我希望這個審查過程適用於所有複選標記的帖子。什麼是最簡單和最簡單的方式來進行審查?在顯示之前,如何發佈帖子需要管理員的手動批准?

這裏的崗位控制器是什麼,現在

def create 
    @post = current_user.posts.build(params[:post]) 
    if @post.save 
     flash[:success] = "Shared!" 
     redirect_to root_path 
    else 
     @feed_items = [] 
     render 'static_pages/home' 
    end 
    end 
+0

只是爲了澄清,如果用戶選中複選框,則需要審查該帖子,但在審查並接受該帖子之前是不可見的?如果複選框沒有被選中,那麼這個帖子根本不會被共享? – 2013-04-05 04:15:27

+0

@Zaid,是的,這正是我想要做的 – 2013-04-05 06:02:30

回答

0

我不是在回報率的角度講,但總體上實現

在數據庫中,添加一個名爲場「來自」 。它擁有'Y'或'N'。默認應該是'Y'。

現在,在保存或更新帖子時,將複選框標記爲Y或N並將其填入此字段中,並且在Model,Only查詢中查找'已審覈'='Y'的帖子。

這樣,如果用戶沒有選中該框,默認值爲'Y'並且帖子顯示出來,但是如果用戶選中該框,則該值爲'N',並且您開發一個評論界面(我希望你已經做過了),在評論之後,你將它標記爲'Y'。

這很簡單,因爲它可以得到。如果您需要添加更多關於審覈人員的信息,審覈時間等信息,您可以添加更多的數據庫字段來存儲該信息。

更新

我對ColdFusion的技術工作,我們有CFWheels框架,它是由回報率的啓發。
根據經驗,我建議你使用表單助手。

試試這個代碼

<%= check_box_tag(:post_reviewed) %> 
<%= label_tag(:post_reviewed, "Review this post") %> 

而對於更多的細節,讀check box tag in ruby on railscheck box form helper

+0

我覺得我快到了。然而,你知道我該如何做到這一點,以便如果用戶選中該框,它會使帖子評論=「N」,並且它不顯示? (進行此關聯的代碼) – 2013-04-05 07:03:05

+0

將選中的值設置爲1並取消選中0.現在,檢查發佈時的表單值。如果它被檢查,然後保存到你的數據庫'N',否則不要做任何事情。默認的'Y'已經在那裏,它就足夠了。 – Sanjeev 2013-04-05 09:29:51

1

對於這一點,你最好不要讓數據類型的「審查」字段爲「布爾」(遷移文件) 。

對於搭建複選框,在您看來,應該檢查: http://guides.rubyonrails.org/form_helpers.html#helpers-for-generating-form-elements

另外請注意,如果你想驗證布爾字段(其中實際值是true和false)的情況下,你不能使用方法:

validate :field_name, :presence => true 

這是由於Object#空白的方式嗎?處理布爾值。 false.blank? #=>真 在這種情況下,你可以使用:

validates :field_name, :allow_nil => true, :inclusion => {:in => [true, false]} 

可以省略:如果您在指定false作爲默認值設置爲新創建的職位「allow_nil =>真」,從上面的驗證聲明(這您需要在驗證觸發前執行此操作)。

相關問題