- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的预订数据库和汽车数据库之间存在多对多关系,以下内容在我的预订 Controller 中并被路由到帖子。
def reserveConfirm
pick_time = params[:pick_y].to_s+"-"+params[:pick_m].to_s+"-"+params[:pick_d].to_s+" "+"#{params[:pick_h]}:00:00"
return_time = params[:return_y].to_s+"-"+params[:return_m].to_s+"-"+params[:return_d].to_s+" "+"#{params[:return_h]}:00:00"
#@reservation = Reservation.find(params[:id])
@car = Car.where(:id => params[:car_id]).update(:status => 'reserved')
@reservation = Reservation.new(status:'reserved',
pick_up_time: pick_time,
return_time: return_time,
user_id:current_user.id)
if @reservation.save
#flash[:success] = @reservation.id
flash[:success] = 'shit'
redirect_to(:action => 'history',:notice => 'Check out was successfully created.',:id =>current_user.id )
else
flash[:success] = 'success'
format.html { render action: "reserve" }
format.json { render json: @reservation.errors.full_messages, status: :unprocessable_entity }
end
end
事情从这里开始变得困惑。在我的预订 Controller 中,每次我想要 params[:id] 时,我都没有获得预订 ID。我已经创建了我的新预留并路由到行动预留。 [:id] 似乎是 nil 或 car_id,因为我的链接是 reservation/:id(:format),而这个 :id 不知何故是汽车 id 而不是我的新预订 id。我的保留操作执行 Reservation.new
def reserve
@reservation = Reservation.new
@car = Car.find(params[:car_id])
if @car == nil
flash[:danger] = "no car found"
else
flash[:danger] = @car.id
end
respond_to do |format|
format.html # new.html.erb
format.json { render json: @reservation }
end
end
我在丛林里,树林里的一切都纠缠在一起。在保留操作中,我可以通过 car_id 找到汽车,这是 reservation/:id 归档的,这里是 2。但是在我的 reserveConfirm 中,我得到一个 nil @car 对象,这迫使我使用 where 找到所有带有 id 的汽车,尽管只有一个原因是 id 是唯一的。更糟糕的是,在我获得@car 之后,我想将其状态更新为保留状态,但是当我查看数据库时,它从未改变过。
传递数据的表单在这里:
<%= form_for @reservation,:url => { :action => "reserveConfirm" } do |f| %>
<%=f.label :Date%>
<%=f.date_select :pick_up_time %>
<%= f.hidden_field :car_id, :value=> @car.id %>
<%= f.hidden_field :user_id, :value=> current_user.id %>
<%= f.submit "Confirm", data: { confirm: 'Are you sure?', class: "btn btn-default" }%>
希望有人能帮我解决这个问题,非常感谢!
最佳答案
首先,您应该验证您是否正确获取@car。
我猜你可以使用 'byebug' 。尝试在 reserveConfirm 方法的开头写“byebug”。
def reserveConfirm
byebug
#your code
end
使用 byebug,您可以查看您的 Rails 服务器(在终端中)并调试您的代码。尝试编写“params”来检查您收到的所有参数。您可以使用 byebug 编写“退出”或“继续”。 (更多信息:Debugging using byebug)
如果 params[:car_id] 存在,你的代码应该是这样的:
@car = Car.find(params[:car_id])
@car.status = 'reserved'
if @car.update
#code
else
#code
end
检查并告诉我进展如何。
关于mysql - update_all 没有更新我的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46453396/
我的预订数据库和汽车数据库之间存在多对多关系,以下内容在我的预订 Controller 中并被路由到帖子。 def reserveConfirm pick_time = params[:pick_y]
我正在尝试为我的所有用户更新“allowed_ips”字段,但它没有像我预期的那样工作。 'allowed_ips' 是一个带有 ip 地址的字符串。 User.where(role: 1).upda
我感兴趣是否可以在 update_all 方法中使用对象属性作为值。 假设我们有关系 Article,它具有属性 part1 和 part2。现在我想用 part2 的值更新与 Article 相关的
我感兴趣是否可以在 update_all 方法中使用对象属性作为值。 假设我们有关系 Article,它具有属性 part1 和 part2。现在我想用 part2 的值更新与 Article 相关的
我有两个模型,它们之间的关联是has_and_belongs_to_many。我需要重构代码,因为它会导致 n + 1 个查询。 问题:n+1 个查询 1。任务 class Task 2。用户
我有这个迁移任务: owner = Owner.first Factory.update_all(original_owner: owner) 它返回一个错误: ActiveRecord::State
我在 Rails 中的小服务 class ReadUserService def self.read_users(count) users = Users.inactive.limit(c
我正在使用 update_all 直接更新数据库中的特定记录。我在解析 csv 文件的脚本中执行此操作。我知道 update_all 返回一个关于更改了多少行的整数。有些行返回 1,有些行返回 0,这
假设我有一个模型: class Result < ActiveRecord::Base attr_accessible :x, :y, :sum end 而不是做 Result.all.find_
这与以下内容隐约相关: How to Update all Dates in a Table 但前提是你真的用力眯眼。 第 1 部分 - 我知道 SQL 可以根据涉及同一表中其他列的公式更新表中的一列
所以我有一个 update_all 查询,如下所示: Task.where(...).update_all('position = position - X, parent_id = Y') 我想用整
RoR 中有 update_all 方法 如果 update_all 失败,它会返回什么?它会引发异常吗? 例如: ActiveRecord::Base.transaction do users
根据 Rails 文档 here和 here , 使用 update_all不执行以下操作 - 它跳过验证 它不会更新 updated_at字段 它默默地忽略 :limit和 :order方法 我正在
我有一个付款表,我希望能够同时更新所有 date_of_payment 字段,即使用相同的日期。 在我看来,我有以下几点 'form_for_all', method: :put do %>
这是我在 Controller 中的功能: def sort params[:state].each_with_index do |id, index| State.update_all(
我想使用事件记录的单个查询来更新多行。我不必使用 update_all 因为它会跳过验证。有什么方法可以在 Rails Active Record 中做到这一点吗? 最佳答案 如果您想更新多个记录而不
我的 after_commit 设置如下。 class MyModel < ActiveRecord::Base after_commit { Rails.logger.info ("commit
我目前正在做一个小项目,我想更快地为我的数据库播种。我将一个名为“grand_total_points”的新列迁移到我的用户表中。所以最初我使用的是这段代码。 user = User.all user
我的 mysql 表中有一列名为 download_count,类型为 int。 现在我想使用 update_all 用一些值更新一些字段,同时增加 download_count。 我试过以下语法:
使用 activerecord 使用 hstore 列更新多条记录的好方法是什么?现在我正在像这样循环、更新和保存: time = Time.now.to_s scoped_tasks.each do
我是一名优秀的程序员,十分优秀!