【问题标题】:function to change attribute using a button使用按钮更改属性的功能
【发布时间】:2016-06-12 19:22:53
【问题描述】:

我正在用 Ruby on Rails 创建一个小型大学项目,但遇到了一个问题:我有一个名为 Person 的表和另一个名为 Tools 的表。 人有很多工具,每一种工具都被一个人所拥有。 我需要添加一个允许在系统的人员之间借用工具的功能。为此,我在 Tools 表中创建了一个名为“loan”的属性,其值为 0 表示该工具不是此借用的,如果为 1,则表示此借用。为了显示工具,我创建了一个具有借用工具功能的按钮。我的问题是如何使此按钮将“工具”表中的“贷款”属性从 0 更改为 1,然后将其反转。有人会有解决方案或更好的建议吗?

【问题讨论】:

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


    【解决方案1】:

    我会像这样创建 2 条名为“barrow”和“retrieve”的路线:

      #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
    

    希望对你有帮助

    【讨论】:

    • 我只是做了一些修改,但效果很好。非常感谢!
    • 很高兴我能提供帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多