这是我第一次尝试stackoverflow,所以请耐心等待...
我试图以下列方式在Rails中生成一种预览页面:
当前状态是:我有一个表单发布到控制器上的预览操作,在那里做我的魔术并渲染预览视图。 在该视图中,我显示了我的所有数据(它来自控制器,作为一个具有嵌套对象集合的对象)。 为了在验证后传回数据,我尝试使用一个简单的按钮。 据我了解" 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=&event_registration%5Bevent_id%5D=1&event_registration%5Bid%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bbirthdate%5D=2017-12-27&event_registration%5Bparticipants%5D%5B%5D%5Bcountry%5D=DE&event_registration%5Bparticipants%5D%5B%5D%5Bcreated_at%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bemail%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bfirst_name%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bid%5D=&event_registration%5Bparticipants%5D%5B%5D%5Blast_name%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bnickname%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bpostcode%5D=&event_registration%5Bparticipants%5D%5B%5D%5Bupdated_at%5D=&event_registration%5Bupdated_at%5D=&event_registration%5Buser_id%5D=1"><input type="submit" value="submit" /><input type="hidden" name="authenticity_token" value="A/jV9kY3UYSsYeF9j2+JEsL4XPAixGBYtX47shTsIp5XK5Dq2tdZsQz2KrQOzcJP6roHCEROTF+n6cYyu/iICw==" /></form>
我在哪里错了?
答案 0 :(得分:1)
以下是button_to
的{{3}}:
button_to(name = nil,options = nil,html_options = nil,&amp; block)
看起来你正在params
传递options
。您应该将它们作为html_options
的一部分传递。当您将它们作为options
传递时,您将它们作为路径的一部分传递。
请改为尝试:
<%= button_to(:submit, { :action => :create }, params: @event_registration.as_json(root: true, include: :participants)) %>