使用link_to更新db中的布尔字段

psh*_*rma 0 ruby ruby-on-rails-3

我在数据库中有boolean字段,如何使用link_to在rails中更新它.我想要两个link_to命令.一个是真的另一个是假的.

我该怎么做?我可以使用ajax,但我想先学会传递数据.

谢谢

tad*_*man 5

link_to只能链接到目标控制器操作.您需要定义一个路由,该路由将调用路由到切换布尔值的方法.

例如,在您的控制器中:

class ThingsController
  def toggle_foo
    @thing = Thing.find(params[:id])
    @thing.foo = !@thing.foo
    @thing.save
  end
end
Run Code Online (Sandbox Code Playgroud)

然后你会路由这个:

resources :things,
  :member => { :toggle_too => :put }
Run Code Online (Sandbox Code Playgroud)

然后你可以链接到它:

link_to('Toggle', toggle_foo_thing_path(@thing), :method => :put)
Run Code Online (Sandbox Code Playgroud)

重要的是不要GET在这些调用上使用方法,因为某些浏览器会预先加载页面上的所有简单链接,这样可以自动切换链接到页面上的所有内容.