我正在尝试在控制器中允许某些参数,但我似乎无法找到正确的方法。
我上传多个文件的观点是:
Employee e;
// Verbose output to cout
std::cout << Employee_NS::verbose<true> << e;
std::ofstream out("test.txt");
// Verbose output to the file
out << Employee_NS::verbose<true> << e;
// Non-verbose output to the file
out << Employee_NS::verbose<false> << e;
在我的控制器中,这些文件位于params:
<%= form_for :photo, url: {action: "create"} do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<br>
<%= f.file_field :photos, multiple: true %>
<br>
<%= f.submit "Upload Image"%>
<% end %>
但我不确定如何正确地允许使用以下代码上传文件,类似于显示here的示例:
params['photo']['photos'][..n..]
并且有一种方法可以更方便地访问文件,例如:
def create
@photo = Photo.new(photo_params)
@photo.save!
@photo.file_names[..n..].url
end
private
def photo_params
# permit here
end
答案 0 :(得分:1)
标准方式是:
def photo_params
params.require(:photo).permit(:title, :photos)
end
然后,您可以通过photo_params[:photos]
访问您的照片。
如果photos
实际上是一个数组,则需要将其作为数组允许:
def photo_params
params.require(:photo).permit(:title, photos: [])
end