2017-04-10 84 views
0

我想在控制器中允许某些参数,但我似乎无法找到正确的方式来这样做。允许的表单参数

我的观点上传多个文件是:

<%= 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 %> 

在我的控制器,该文件位于PARAMS这里:

params['photo']['photos'][..n..] 

但我不能确定如何正确地允许它允许使用以下代码上传文件,与示例here类似:

def create 
    @photo = Photo.new(photo_params) 
    @photo.save! 
    @photo.file_names[..n..].url 
    end 

    private 
    def photo_params 
     # permit here 
    end 

,是有办法使文件可以更方便,例如:

params['photos'] 

回答

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