使用按钮更改属性的功能

时间:2016-06-12 19:22:54

标签: ruby ruby-on-rails-4 activerecord model controller

我正在使用Ruby on Rails创建一个小型大学项目,我遇到了一个问题:我有一个名为Person的表,另一个叫做Tools。 人们拥有许多工具和每种工具并且由一个人拥有。 我需要添加一个功能,允许在系统的人之间借用工具。为此,我创建了一个名为' loan'在工具表中,其值为0意味着没有借用的工具,如果它是1,则借用该工具。在视图中显示工具,我创建了一个带有借用工具功能的按钮。我的问题是如何让这个按钮改变属性' loan'从Tools表中从0到1然后反转它。有人会有解决方案或更好的建议吗?

1 个答案:

答案 0 :(得分:0)

我会创建2条路线名称“barrow”和“检索”,如下所示:

  #config/routes.rb
  get '/tool/:id/barrow' => 'tools#barrow', as: :barrow
  get '/tool/:id/retrieve' => 'tools#retrieve', as: :retrieve

现在在您的视图中,您可以执行类似

的操作
# tool.index.html.erb
...
<% if tool.loan %>
  <%= link_to retrieve_path(tool), 'Retrieve', class: 'btn ...' %>
<% else %>
  <%= link_to barrow_path(tool), 'Barrow', class: 'btn ...' %>
<% end %>
...

现在你必须创建你必须创建检索和手推车方法的控制器动作

#app/controllers/tool_controller.rb
class UserController < ApplicationController
  ...
  def retrieve
    @tool = Tool.find_by(params[:tool])
    @tool.update_attributes(:loan, 0)
  end

  def barrow
    @tool = Tool.find_by(params[:tool])
    @tool.update_attributes(:loan, 1)
  end
  ...
end

我希望这能帮到你