Is it possible to require multiple strong params in Rails? -


i'm trying server-side validation form in rails, , require specific fields have value. here params in controller:

private def post_params   params.require(:post).permit(:title, :text, :slug) end 

the problem server merely permits these params — doesn't require them, it's possible submit blank form.

my understanding params.require accepts 1 argument, , i've tried getting around no success:

private def post_params   params.require(:post, :title, :text, :slug) end # => wrong number of arguments (4 1)  private def post_params   all_params = [:post, :title, :text, :slug]   params.require(all_params) end # => param missing or value empty: [:post, :title, :text, :slug]  private def post_params   params.require(:post).require(:title).require(:text).require(:slug) end # => private method `require' called "test thing":string 

is there way require multiple strong params?

strong parameters used mass assignment. mass assignment means when submit form multiple values submitted i.e., multiple attributes of model add them in params.require(:post).permit. seeing word permit means attributes permitted mass assigned. suppose writing in controller:

def post_params   params.require(:post).permit(:title, :text, :slug) end 

and in params suppose have:

{"post"=>{"title"=>'test',"text"=>"text test","slug"=>"any random name","type"=>"article"}} 

now if do:

@post = post.new(post_params) @post.save 

it give unpermitted parameters :type because have not whitelisted type parameter. given security reasons allow attributes needs updated user view permitted. , strong parameters introduced rails 4 onwards.

now thing need require these parameters user fills them needs done in model this:

class post < activerecord::base   validates_presence_of :title, :text, :slug end 

this validation make users enter title, text , slug necessarily. there more type of validations , custom validations can written according needs.

more info:

strong parameters

validations

hope helps


Comments