![](/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.