更改button_to属性

时间:2016-06-02 08:55:11

标签: ruby-on-rails ruby

我对rails上的ruby很新,我正在处理一个会改变属性的按钮取决于函数结果。截至目前,我创建了这个返回true或false的函数。

@Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

       mMap.setPadding(0,0,0,1000);

        LatLng eiffel = new LatLng(48.858093, 2.294694);
        mMap.moveCamera(CameraUpdateFactory.newLatLng(eiffel));
        mMap.addMarker(new MarkerOptions().position(eiffel).title("Marker in Eiffel"));
    }

我想更改我的button_to属性(Value,class,并禁用它) 如果结果返回true。

def link_facebook
    is_linked = FacebookLinked.link(env["omniauth.auth"])
    redirect_to :controller => 'dashboard', :action => 'settings'
end

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

2 个答案:

答案 0 :(得分:0)

如果返回布尔值的函数被称为my_function,则默认类(当为真时)为'btn btn-default',而布尔值为假时的类为'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。或者,您可以在控制器中创建变量(不需要帮助程序)并将变量传递给视图。

答案 1 :(得分:0)

方法1

你可以做这样的事情

redirect_to controller: 'dashboard', action: 'settings', is_linked: is_linked

现在,链接的值将传递到设置页面的网址

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'%>