簡體   English   中英

Rails:如何將自定義參數傳遞給控制器​​方法?

[英]Rails: How do I pass custom params to a controller method?

我是Rails的新手。

我想跟蹤帖子的閱讀頻率,以便按照受歡迎程度對其進行排名。 因此,我將在posts表中有一個數據庫列read_count ,每次調用#show時它會遞增1。

但是,如果管理員已登錄並希望通過#show方法預覽帖子,我不希望read_count增加。

我認為在params散列中傳遞一個自定義參數如preview=true會是最好的。 然后,如果preview評估為false或nil,#show將僅增加read_count 但是,我該怎么做? 在params哈希中添加preview=true的正確方法是什么?

或者在控制器上實現#preview方法會更好嗎?

做一些像這樣的事情:

@post.read_count.increment! unless user_signed_in? && current_user.admin?

為什么不通過控制器動作本身而不是發送參數? 如果它被命中並且不是管理員,那么增加計數,似乎是一個更簡單的解決方案。

下面的答案之一可能是一個更好的方法,但回答你如何通過額外的參數的問題。 您可以將它們添加到網址助手的末尾,因此如果現有鏈接如下所示:

link_to'顯示',post_path(id)

只需將其更改為:

link_to'顯示',post_path(id)+'?preview = true'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM