【发布时间】:2015-11-19 18:19:07
【问题描述】:
在我的 Rails 4 应用程序中,我有一个 Calendar 和一个 Post 模型,使用 shallow routes:
resources :calendars do
resources :posts, shallow: true
end
一个日历has_many 帖子和一个帖子belong_to 一个日历。
通过Posts#New 视图创建一个新的帖子对象,格式如下:
<%= form_for [@calendar, @calendar.posts.build], html: { multipart: true } do |f| %>
<div class="field">
<%= f.label :date, "DATE & TIME" %>
<%= f.datetime_select :date %>
</div>
[...] # Truncated for brivety
<div class="actions">
<%= f.submit @post.new_record? ? "CREATE POST" : "UPDATE POST", :id => :post_submit %>
</div>
<% end %>
在某些情况下(但不是全部)我想使用通过 URL 传递的参数来预填充表单的日期字段。
我已经能够通过带有以下链接的 URL 传递日期:
<%= link_to '<i class="glyphicon glyphicon-plus-sign"></i>'.html_safe, new_calendar_post_path(@calendar, date: date) %>
此链接为我提供了以下类型的 URL:
http://localhost:3000/calendars/6/posts/new?date=2015-11-12
从那里,我如何预填充表单?
最重要的是,当日期通过 URL 传递时,我如何仅这样做?
【问题讨论】:
标签: ruby-on-rails forms ruby-on-rails-4 parameter-passing