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
Post a Comment