使用Rails上的按钮动作ruby更新数据库

时间:2019-02-07 20:41:24

标签: ruby-on-rails ruby rails-activerecord

我是Rails的新手,正在尝试建立房东管理系统。

我希望在维护请求显示页面上,有一个按钮将维护请求标记为已完成,然后将其更新回数据库

这是我的表演页面

.wrapper_with_padding
  #house.show
    %h1= @request.title
    %p= simple_format(@request.description)
    -if @request.house.present?
      Location: #{@request.house.house_title}
    -else
      %p= 'No Property Information Given'

  %br
  .buttons
    = link_to "Edit", edit_request_path(@request), class: "button"
    = link_to "Delete", request_path(@request), method: :delete, data: { confirm: "Are you sure?" }, class: "button"

这也是我的请求控制器

class RequestsController < ApplicationController
  before_action :find_request, only: [:show, :edit, :update, :destroy]

  def index
    #@requests = Request.where(user_id: current_user)
    @requests = Request.all
  end

  def show
  end

  def new
    @request = current_user.requests.build
  end

  def create
    @request = current_user.requests.build(request_params)

    if @request.save
      redirect_to @request
    else
      render 'new'
    end
  end

  def edit
  end

  def update
    if @request.update(request_params)
      redirect_to @request
    else
      render 'edit'
    end
  end

  def destroy
    @request.destroy
    redirect_to requests_path
  end

  private

  def find_request
    @request = Request.find(params[:id])
  end

  def request_params
    params.require(:request).permit(:title, :description, :house_id)
  end
end

任何进一步的信息,将不胜感激。

问:实现按钮来更改数据库中属性值的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

添加了表单以更新属性:completed_at

  = form_for @request do |t|
    = t.hidden_field :completed_at, :value=> Time.now
    = t.submit "Add Complete At", class: "button"