2013-05-02 103 views

回答

5

link_to只能链接到一个目标控制器动作。你需要定义一个路由,将呼叫路由到切换布尔值的方法。

例如,在你的控制器:

class ThingsController 
    def toggle_foo 
    @thing = Thing.find(params[:id]) 
    @thing.foo = [email protected] 
    @thing.save 
    end 
end 

那么你会路线是:

resources :things, 
    :member => { :toggle_too => :put } 

然后你就可以链接到它:

link_to('Toggle', toggle_foo_thing_path(@thing), :method => :put) 

这对并不重要对这些调用使用GET方法,因为有些浏览器会预先加载您网页上的所有简单链接,这会自动切换您在页面上链接的所有内容。

+0

我有一个字段在数据库中说'产品'是布尔值。在上面的代码中,我如何切换?另外我期待有两个按钮同意和不同意。如果同意被击中,那么它是真实的,否则,否则。 – psharma 2013-05-02 20:13:48

+0

那么,这是一个设置适当标签的情况,可能有'if'来显示两种可能状态之一。你要求的是非常具体的。希望你可以根据需要调整这个例子。 – tadman 2013-05-02 20:54:25

相关问题