簡體   English   中英

從控制器的Rails設置實例變量

[英]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.

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