【发布时间】:2011-08-24 12:28:32
【问题描述】:
当我向 Rails 3.0 照片库网站提交照片时。除了能够上传文件,从下拉列表中选择相册,我还需要能够传递逗号分隔标签列表。我对正确使用 form_for 感到困惑。注意:这是在 new.html.erb 视图中(和 PhotoController 的新方法)
<%= form_for(@photo) do |f| %>
<% if @photo.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@photo.errors.count, "error") %> prohibited this photo from being saved:</h2>
<ul>
<% @photo.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.label :album_id %>
<%= select "photo", "album_id", @albums.map {|a| [a.name,a.id]} %><br />
<%= f.label :name %>
<%= f.text_field :name %><br />
<%= f.label :photofile %>
<%= f.file_field :photofile %><br />
<%= f.label :tags %>
<%= f.text_field :tags %><br />
<%= f.submit %>
<% end %>
我对 (1) 上传文件的正确方法感到困惑 - 我是否使用 f.file_field 沿着正确的路径前进。 photofile 并不是 Photo 对象的真正属性。并且(2)与 :tags 类似的问题 - 标签不是 Photo 对象上的属性,所以它应该是 f.text_field (3)我假设我做相册下拉列表的方式是正确的(我希望?)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 erb