ruby on rails - How can i use form_for so as to get a hidden_field value using params in controller#create -


i need help.i need current_user.id (i use devise gem) articles#create. wanna pass means form_for , hidden field. i've written:

<%= form_for :article, url: articles_path |f| %>   <p>     <%= f.label :title %><br/>     <%= f.text_field :title %>   </p>    <p>     <%= f.label :text %><br/>     <%= f.text_area :text %>   </p>    <p>  # it's here <%= f.hidden_field :user_id %>  

i've got:

<input type="hidden" name="article[user_id]" id="article_user_id"/> 

but need:

<input type="hidden" name="article[user_id]" id="article_user_id" value="2"/> 

i've written html code in new.html.erb

<input type="hidden" name="article[user_id]" id="article_user_id" value="<%= current_user.id%>"/> 

and active record saved object database.i inspect params , don't see hidden value. wanna ask 2 question: 1. how can write hidden_field in form_for? 2. how can articles#create hidden value means params?

i think want is:

<%= f.hidden_field :user_id, value: current_user.id %> 

and in controller (usually in article_params) make sure permit user_id parameter.

def article_params   params.require(:article).permit(:user_id, :title, ...) end 

a better way setting server-side, because hidden field manipulated.. example:

def create   @article = current_user.articles.new(article_params)   if @article.save     # ...   else     # ...   end end 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -