2017-01-31 43 views
0

问题在于rails中的“强参数”。 我使用蜻蜓上传图片。param丢失或值为空:gallery

问题是,如果我发送一个空的表单,我没有得到任何错误处理参数。可能是什么原因?

控制器:

还有一个也是方法“创建”,这在数据库中保存图像,并将用户与图片页面。

def index 
    @gallery = Gallery.new 
    @galleries = Gallery.all 
end 

def create 
    @gallery = Gallery.new(gallery_params) 

    if @gallery.save 
    redirect_to galleries_path, flash: { success: 'Your Image was successfully save.' } 
    else 
    redirect_to :back,   flash: { alert: "Your Image don't save." } 
    end 
end 

def gallery_params 
    params.require(:gallery).permit(:image) 
end 

浏览:

= form_for @gallery do |f| 
    = f.file_field :image 
    = f.submit 'Submit', class: 'btn bth-primary btn-lg' 

参数:

{"utf8"=>"✓", "authenticity_token"=>"8eotQtkj8SElqJLdHuOX8r+dWrCJRWTmVcyfd1mSLD/8MjWw/ElH/HCxZFSJ6oOWaxpbLbn4kAg5nlFycsgjHg==", "commit"=>"Submit"} 
+0

你是什么意思“我没有得到任何错误处理参数”? –

+1

你得到的是完美的,如预期的那样。 –

+0

如果你的意思是你没有得到任何验证错误,那可能是因为'image'字段不是强制性的。你应该发布你的'图库'模型 –

回答

1

这是预期的行为,请参阅ActionController::Parameters#require

文档我通常在这种情况下什么是赶上例外并显示一条闪光信息以通知用户。您也可以手动向模型添加错误。

def create 
    @gallery = Gallery.new(gallery_params) 

    if @gallery.save 
    redirect_to galleries_path, flash: { success: 'Your Image was successfully save.' } 
    else 
    redirect_to :back, flash: { alert: "Your Image don't save." } 
    end 
rescue ActionController::ParameterMissing => e 
    redirect_to :back, flash: { alert: "Please attach an image." } 
end 
相关问题