我是ruby on rails的新手,目前正在开发一个按钮,该按钮将根据函数结果更改属性。到目前为止,我创建了这个返回true或false的函数。
def link_facebook
is_linked = FacebookLinked.link(env["omniauth.auth"])
redirect_to :controller => 'dashboard', :action => 'settings'
end如果结果返回true,我想要更改我的button_to属性(值、类,并禁用它)。
<%= button_to 'Setup Facebook','/auth/facebook',:class=>'btn btn-default',:id=>'setup_facebook'%>我已经搜索了ajax,但我不知道如何开始使用它。
发布于 2016-06-02 17:02:30
如果返回布尔值的函数名为my_function,则默认类(为true)为'btn btn-default',布尔值为false时的类为'btn btn-default disabled',则可以使用:
"btn btn-default #{(my_function ? '': 'disabled')}"所以总而言之:
<%= button_to 'Setup Facebook','/auth/facebook',:class=>"btn btn-default #{(my_function ? '': 'disabled')}",:id=>'setup_facebook'%>请注意,您可能需要使用帮助器从视图调用该方法,如下所示:helper_method :my function。或者,您可以在控制器中创建变量(不需要帮助器),并将变量传递给视图。
发布于 2016-06-02 17:11:27
方法1
你可以这样做
redirect_to controller: 'dashboard', action: 'settings', is_linked: is_linked现在链接的值将传递到设置页面的url
http://localhost:3000/dashboard/settings?is_linked=true在您的视图中
<%= button_to 'Setup Facebook','/auth/facebook',:class=>"btn btn-default #{params[:is_linked]? '': 'disabled'}",:id=>'setup_facebook'%>方法2
您可以在rails中的settings操作中包含一个实例变量,如下所示
def settings
@is_linked = FacebookLinked.link(env["omniauth.auth"])
...
end因此您可以以类似方式在视图中进行访问
<%= button_to 'Setup Facebook','/auth/facebook',:class=>"btn btn-default #{@is_linked? '': 'disabled'}",:id=>'setup_facebook'%>https://stackoverflow.com/questions/37587079
复制相似问题