![](/img/trans.png)
[英]Rails - Setting title in layout from instance variable (controller or view?)
[英]Rails setting Instance Variable from View for the Controller
我試圖從視圖中的控制器設置實例變量。 例如:
class UsersController
def new
@admincheck = false
end
查看:home.html.erb
<%= link_to "Sign up", signup_path, @admincheck => true, :class => "signup_button round" %>
在視圖中將@admincheck設置為true,UsersController會通過接收為true的@admincheck來對此做出響應嗎?
我不確定是否可以在視圖中分配實例變量值供控制器使用。 謝謝
您無法在控制器視圖中設置實例變量。 代替這樣做,您可以將參數從視圖傳遞到控制器。 我認為您想添加一個檢查,使只有管理員才能“注冊”。 為此,您可以檢查控制器中的當前用戶狀態並繼續。
嘗試使用過濾器來處理這類事情。 視圖不負責處理下一個請求的身份驗證決定。
您到底想做什么?
您應該簡單地執行以下操作:
<%= link_to "Sign up", signup_path(:admincheck => true), :class => "signup_button round" %>
然后,在您的控制器中,您可以將admincheck
作為@admincheck = params[:admincheck]
您無法從控制器的視圖中設置實例變量。 考慮到請求響應周期:
瀏覽器->請求->控制器->視圖->響應->瀏覽器
您想將某些東西從視圖傳遞到控制器,並且由於視圖位於上圖中的線下,因此它無法將變量傳遞給控制器,相反,您將需要將數據作為表單字段傳遞並在控制器中捕獲相同的數據由Pravin和Ashihsh提出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.