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