Ruby on rails 将当前服务名称和id保存到servicebooking模型
我想知道是否有人能给我指出正确的方向。我有服务和服务预订模式。我的服务预订表包含以下字段:id、服务名称、服务id、日期、时间和用户id。我的服务视图页面上有一个“预订服务”链接,保存预订时,我希望将当前服务名称和id保存到服务预订表和当前用户id 下面是我的服务控制器创建操作,但我不确定如何进行,我知道我需要通过隐藏字段等访问服务id和名称参数,这里有什么帮助吗?谢谢你的帮助 服务有很多服务预订,用户有很多服务和服务预订。 服务和服务预订属于用户Ruby on rails 将当前服务名称和id保存到servicebooking模型,ruby-on-rails,ruby,ruby-on-rails-3,devise,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 3,Devise,Ruby On Rails 4,我想知道是否有人能给我指出正确的方向。我有服务和服务预订模式。我的服务预订表包含以下字段:id、服务名称、服务id、日期、时间和用户id。我的服务视图页面上有一个“预订服务”链接,保存预订时,我希望将当前服务名称和id保存到服务预订表和当前用户id 下面是我的服务控制器创建操作,但我不确定如何进行,我知道我需要通过隐藏字段等访问服务id和名称参数,这里有什么帮助吗?谢谢你的帮助 服务有很多服务预订,用户有很多服务和服务预订。 服务和服务预订属于用户 def create @service
def create
@servicebooking = current_user.servicebookings.build(params[:servicebooking].permit(:service_id, :date, :time, :user_id))
@servicebooking = //Need some help here
if @servicebooking.save
redirect_to @servicebooking
else
render 'new'
end
end
//////编辑-我的服务显示视图
<h2><%= @service.name %></h2><%= link_to 'Book this service', new_servicebooking_path %>
<p>
<strong>Name:</strong>
<%= @service.name %>
</p>
<p>
<strong>Date Available:</strong>
<%= @service.date_available %>
</p>
<p>
<strong>Time Available:</strong>
<%= @service.time_available %>
</p>
名称:
可用日期:
可用时间:
//////EDIT2我的服务编辑视图
<%= form_for @servicebooking, :html => { :multipart => true } do |f| %>
<% if @servicebooking.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(@servicebooking.errors.count, "error") %> prohibited
this service booking from being saved:</h2>
<ul>
<% @servicebooking.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= f.label :date %><br>
<%= f.text_area :date %>
</p>
<p>
<%= f.label :time %><br>
<%= f.text_area :time %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
{:multipart=>true}do | f |%>
禁止
无法保存此服务预订:
您没有显示视图,因此建议您如何通过隐藏字段(如
#somewhere in form
<%= hidden_field_tag 'servicebooking[service_id]', @service.try(:id) %>
<%= hidden_field_tag 'servicebooking[service_name]', @service.try(:name) %>
服务id
可以(必须)通过所属的关联进行设置,或者您可以将其添加到上述方法中
更新
假设您在服务中有型号
has_many :servicebookings
1从“服务展示”视图中,您需要通过新服务预订路径传递:服务id
参数
<%= link_to 'Book this service', new_servicebooking_path(service_id: @service.id) %>
3在编辑表单中插入这两行
<%= f.hidden_field :service_name, @service.try(:name) %>
<%= f.hidden_field :user_id, current_user.try(:id) %>
嘿,奥克利夫,我已经用我的服务秀视图更新了我的问题。。。保存预订时…
-您必须显示编辑表单而不是显示视图嘿,Okliv,我已使用我的服务编辑视图进行了更新
def new
@service = Service.find(params[:service_id])
@servicebooking = @service.servicebookings.new
end
<%= f.hidden_field :service_name, @service.try(:name) %>
<%= f.hidden_field :user_id, current_user.try(:id) %>
@servicebooking = @service.servicebookings.new(service_name: @service.try(:name), user_id: current_user.try(:id))