在Link中声明一个变量,因此Controller在Rails中加载单独的布局

时间:2012-01-24 12:53:35

标签: ruby-on-rails

我有一个名为

的链接
<%=link_to 'Free Trial', '/sign_up', :rel => "#signup", :class => "sign_up_button"%>

其中呈现mysite.com/sign_up - 这会在Jquery灯箱中加载部分内容。然而,我想要做的是有一个控制器语句,如果单击上面的链接,它将呈现没有布局的页面。但是,如果用户从地址栏导航到mysite.com/sign_up,他们会看到相同的页面但是有布局。

我在控制器中想的是这样的:

 def sign_up
   if :variable == true
   render :layout => false
   else
   render :layout => 'layouts/sign_up'
   end  
 end

然后在我的链接中声明一个可以传递给控制器​​的变量?

之类的东西
:variable => 'true'

我正在以正确的方式思考这个问题?上述工作如何?

这样做的主要原因是,如果自己加载mysite.com/login(没有Jquery),那么它仍然会很好看!

由于

1 个答案:

答案 0 :(得分:0)

您有两种方式:

  • 您可以按照自己的想法进行操作,并通过POST设置partial标记。将/signup替换为/signup?partial=1并在控制器中if params[:partial]

  • 或者您可以渲染conditionnaly查看request.xhr?(但是jj框架必须正确设置ajax标头)