gpt4 book ai didi

jquery - 如何在 Ruby on Rails 中提交此 HTML 表单?

转载 作者:行者123 更新时间:2023-12-01 07:47:37 26 4
gpt4 key购买 nike

我是 Ruby on Rails 的新手,但我决定开发一个我一直想做的餐 table 预订应用程序。我正在摸索如何创建典型的数量增量表单,并且发现了一些信息,最终我的表单看起来像这样:

http://codepen.io/anon/pen/xZVNoz

这不是那么花哨,但它可以工作(在 codepen 上不起作用,但可以在我的元素上工作),这是一个问题,现在我需要此表单来提交并通过我的预订 Controller ,如下所示:

class ReservationsController < ApplicationController
def index

end

def create
@reservation = Reservation.new(reservation_params)
reservation.save
end

private

def reservation_params
params.require(:reservation).permit(:user_email, :num_of_people, :reservation_time, :table_id)
end
end

所以本质上,当用户点击他们想要预订的 table 时,这个小表格就会出现,他们选择与他们一起的客人数量,然后点击提交和繁荣,它记录谁进行了预订(通过用户的电子邮件)、用餐人数(使用带有加号和减号的数量指示符表示)、预订时间和餐 table ID。我的问题是,我不确定如何让提交和预订 Controller 相互通信。有任何想法吗?我是否遗漏了任何关键步骤?

预先感谢您的帮助。

最佳答案

I'm a bit of a newbie on Ruby on Rails

欢迎!!

<小时/>

这样做:

#config/routes.rb
resources :reservations

#app/controllers/reservations_controller.rb
class ReservationsController < ApplicationController
def new
@reservation = Reservation.new
end

def create
@reservation = Reservation.new reservation_params
@reservation.save
end

private

def reservation_params
params.require(:reservation).permit(:user_email, :num_of_people, :reservation_time, :table_id)
end
end

这将允许您使用以下表单:

#app/views/reservations/new.html.erb
<%= form_for @reservation do |f| %>
<%= f.email_field :user_email %>
<%= f.number_field :num_of_people %>
<%= f.submit %>
<% end %>

这将允许您通过访问url.com/reservations/new来创建预订

<小时/>

为了解释它是如何工作的,Rails 构建在 Object Orientated 之上原则——应用程序中的一切都应该是一个对象,或者至少服务于一个对象。

您的routes are object orientated ,您的 Controller 应该是面向对象的,并且您的流程应该是面向对象的:

enter image description here

因此,当您询问您的表单将如何与您的 Controller 通信时,答案是您必须将其与您为 Controller 定义的各种路由联系起来。

具体来说,如果您有一个 new 操作,您还应该有一个 create 操作 - 您的表单将能够将其数据发送到该操作。

您的表单只是 HTML - 它们会将数据发布到您在 Controller 的 form_for block 中定义的 URL。结果是您能够在 customers#create 方法中调用适当的数据,该方法会将数据保存到数据库中。

关于jquery - 如何在 Ruby on Rails 中提交此 HTML 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34377929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com