Ruby on rails 如何将:event_id发送到rails中的其他控制器

Ruby on rails 如何将:event_id发送到rails中的其他控制器,ruby-on-rails,Ruby On Rails,我的应用程序事件和注册中有两个控制器。在事件显示模板中提交表单后,我想将当前事件的事件id发送给注册控制器 show.html.erb <%= form_for @registrations do |f| %> <%= f.submit %> <% end %> 我认为,由于事件和注册没有任何关系,所以它给出了这个错误。 如何解决此错误在不了解更多模型关联以及@registrations对象的情况下,这是最简单的解决方案: 将隐藏字段添加到表单:

我的应用程序事件和注册中有两个控制器。在事件显示模板中提交表单后,我想将当前事件的事件id发送给注册控制器

show.html.erb

<%= form_for @registrations do |f| %>

   <%= f.submit %>

<% end %>
我认为,由于事件和注册没有任何关系,所以它给出了这个错误。
如何解决此错误

在不了解更多模型关联以及@registrations对象的情况下,这是最简单的解决方案: 将隐藏字段添加到表单:

<%= f.hidden_field( :event_id, @event.id ) %>
# assumes @event exists in the show action somewhere
如果您的模型已关联,您可以执行以下操作:

<%= form_for @event.registrations.new %>


但根据提供的代码,很难说这是否能在你的应用程序中起作用。

当表单提交时,你能在你的服务器日志中粘贴POST请求吗?@NickM没有收到你的回复,因为我是rails新手,我正在寻找类似的解决方案。有趣的是,我想出了一个类似的解决方案。您只需在表单中的某个位置获取@event.id,并使用一个隐藏字段。
<%= f.hidden_field( :event_id, @event.id ) %>
# assumes @event exists in the show action somewhere
def create
  @event = Event.find(params[:registrations][:event_id])
end
<%= form_for @event.registrations.new %>