Ruby on rails 将当前服务名称和id保存到servicebooking模型

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

我想知道是否有人能给我指出正确的方向。我有服务和服务预订模式。我的服务预订表包含以下字段:id、服务名称、服务id、日期、时间和用户id。我的服务视图页面上有一个“预订服务”链接,保存预订时,我希望将当前服务名称和id保存到服务预订表和当前用户id

下面是我的服务控制器创建操作,但我不确定如何进行,我知道我需要通过隐藏字段等访问服务id和名称参数,这里有什么帮助吗?谢谢你的帮助

服务有很多服务预订,用户有很多服务和服务预订。 服务和服务预订属于用户

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))