2017-12-27 398 views
1

的,这是我第一次尝试在计算器,所以我请大家多多...的Rails 5.1 button_to帮手产生的查询字符串,而不是隐藏表单

我想在时尚,以产生一种预览页面中的Rails :

  1. 填表
  2. 发送的形式向控制器
  3. 得到一个视图中显示您刚刚发送的数据加上你的表单输入 4按下一个按钮控制器产生一些额外的数据确认 数据是正确的
  4. 现在保存一切到数据库。

当前状态是:我有表单发布到控制器上的预览操作,在那里做我的魔法并呈现预览视图。 在该视图中,我显示了所有的数据(它们是作为一个具有嵌套对象集合的对象从控制器出来的)。 验证后传回数据,我尝试使用一个简单的按钮。 正如我所了解的“button_to”助手,我应该传递我的params散列给帮助者,让我的所有参数都隐藏在一个按钮窗体中。 但是,出于某种原因,我的按钮只包含真实性标记的隐藏字段。所有其他参数都附加到表单上操作的查询字符串中。

我的按钮代码:

<%= button_to(:submit, :action => :create, params: @event_registration.as_json(root: true, include: :participants)) %> 

生成的源代码:

<form class="button_to" method="post" action="/en/event_registrations?event_registration%5Bcreated_at%5D=&amp;event_registration%5Bevent_id%5D=1&amp;event_registration%5Bid%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bbirthdate%5D=2017-12-27&amp;event_registration%5Bparticipants%5D%5B%5D%5Bcountry%5D=DE&amp;event_registration%5Bparticipants%5D%5B%5D%5Bcreated_at%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bemail%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bfirst_name%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bid%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Blast_name%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bnickname%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bpostcode%5D=&amp;event_registration%5Bparticipants%5D%5B%5D%5Bupdated_at%5D=&amp;event_registration%5Bupdated_at%5D=&amp;event_registration%5Buser_id%5D=1"><input type="submit" value="submit" /><input type="hidden" name="authenticity_token" value="A/jV9kY3UYSsYeF9j2+JEsL4XPAixGBYtX47shTsIp5XK5Dq2tdZsQz2KrQOzcJP6roHCEROTF+n6cYyu/iICw==" /></form> 

我要去哪里错了吗?

回答

1

这里的documentationbutton_to

button_to(名称=零,选择=零,html_options =零,&块)

它看起来像你路过params作为的一部分options。你应该通过它们作为html_options的一部分。当你将它们传递为options时,你将它们作为路径的一部分传递给它们。

试试这个:

<%= button_to(:submit, { :action => :create }, params: @event_registration.as_json(root: true, include: :participants)) %> 
+0

完美,谢谢! 有时候,当你盯着你的代码和文档太长时间时,你会相当盲目...... – onkeld

+0

完全。多年来,我一直被这种相同的东西咬了很多次。 –

相关问题