首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改button_to属性

更改button_to属性
EN

Stack Overflow用户
提问于 2016-06-02 16:55:11
回答 2查看 257关注 0票数 0

我是ruby on rails的新手,目前正在开发一个按钮,该按钮将根据函数结果更改属性。到目前为止,我创建了这个返回true或false的函数。

代码语言:javascript
运行
复制
def link_facebook
    is_linked = FacebookLinked.link(env["omniauth.auth"])
    redirect_to :controller => 'dashboard', :action => 'settings'
end

如果结果返回true,我想要更改我的button_to属性(值、类,并禁用它)。

代码语言:javascript
运行
复制
<%= button_to 'Setup Facebook','/auth/facebook',:class=>'btn btn-default',:id=>'setup_facebook'%>

我已经搜索了ajax,但我不知道如何开始使用它。

EN

回答 2

Stack Overflow用户

发布于 2016-06-02 17:02:30

如果返回布尔值的函数名为my_function,则默认类(为true)为'btn btn-default',布尔值为false时的类为'btn btn-default disabled',则可以使用:

代码语言:javascript
运行
复制
"btn btn-default #{(my_function ? '': 'disabled')}"

所以总而言之:

代码语言:javascript
运行
复制
<%= button_to 'Setup Facebook','/auth/facebook',:class=>"btn btn-default #{(my_function ? '': 'disabled')}",:id=>'setup_facebook'%>

请注意,您可能需要使用帮助器从视图调用该方法,如下所示:helper_method :my function。或者,您可以在控制器中创建变量(不需要帮助器),并将变量传递给视图。

票数 0
EN

Stack Overflow用户

发布于 2016-06-02 17:11:27

方法1

你可以这样做

代码语言:javascript
运行
复制
redirect_to controller: 'dashboard', action: 'settings', is_linked: is_linked

现在链接的值将传递到设置页面的url

代码语言:javascript
运行
复制
http://localhost:3000/dashboard/settings?is_linked=true

在您的视图中

代码语言:javascript
运行
复制
<%= button_to 'Setup Facebook','/auth/facebook',:class=>"btn btn-default #{params[:is_linked]? '': 'disabled'}",:id=>'setup_facebook'%>

方法2

您可以在rails中的settings操作中包含一个实例变量,如下所示

代码语言:javascript
运行
复制
def settings
  @is_linked = FacebookLinked.link(env["omniauth.auth"])
  ...
end

因此您可以以类似方式在视图中进行访问

代码语言:javascript
运行
复制
<%= button_to 'Setup Facebook','/auth/facebook',:class=>"btn btn-default #{@is_linked? '': 'disabled'}",:id=>'setup_facebook'%>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37587079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档