【问题标题】:Ruby on Rails link_to method to change db valueRuby on Rails link_to 方法更改数据库值
【发布时间】:2021-11-15 12:10:09
【问题描述】:

您好,我正在尝试根据用户在我的视图中使用link_to 方法单击是或否按钮,将我的Rails Postgresql 数据库中的字符串值从“no”更改为“yes”。我已将默认字符串值指定为“否”,因此如果用户单击“是”按钮,我希望该值更改为“是”。我想将“link_to 方法”分配给我的控制器中的yesmarried 操作。我=我不确定如何在 yesmarried 操作中找到 newcase,我不断收到错误Couldn't find Newcase without an ID

这是我的控制器

class NewcaseController < ApplicationController
  def new
  end
  
  def create
      @newcase = NewCase.new(newcase_params)
  end
  def yesmarried
     @newcase=Newcase.find(params[:id])
        self.married = "yes"
  end
  private
  def newcase_params
      params.require(:newcase).permit(:state,:first_name,:last_name, :dob, :email, :telephone_number, :addr,:respondent_fname, :respondent_lname,:respondent_addr, :marriage_date, :state_of_marriage, :date_of_seperation, :number_of_children, :children_addr, :occupation , :work_addr, :net_monthly, :married)
  end
end

这是我的看法:

<%=link_to 'yes',new_path(@newcase), class:"btn btn-lg rounded btn-warning", action: "yesmarried",method: "put", "data-toggle" => "modal", 'data-target' => '#married-question', "data-bs-dismiss"=>"modal"  %>

路由文件:

get '/new', to:'newcase#new'
post '/new', to:'newcase#create'
patch '/new', to:'newcase#yesmarried'
put '/new', to:'newcase#yesmarried'

【问题讨论】:

    标签: ruby-on-rails ruby postgresql-9.1 link-to


    【解决方案1】:

    您的代码有点不安和不习惯,但您的 yesmarried 方法应该是:

    def yes_married
      @newcase = Newcase.find(params[:id])
      @newcase.update_attribute(:married, 'yes')
    end
    

    添加路线:

    get '/newcase_yes_married`, to: 'newcase#yes_married'
    

    您需要将new_path 更改为newcase_yes_married_path(或rails routes 在终端中返回的任何路径)。

    然而更好的解决方案是搭载更新方法以保持其 RESTful。

    def update
      @newcase = Newcase.find(params[:id])
      @newcase.update_attributes(newcase_params)
    end
    
    <%= link_to "Yes", [@newcase, { newcase: { married: 'yes' }}], method: 'patch' %>
    

    注意:代码未经测试。

    【讨论】:

    • 好的,非常感谢,让我试试看终端返回的路径,谢谢,让你知道
    • 完全不用担心@AriTicas
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2018-11-22
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    相关资源
    最近更新 更多