ruby on rails - Assign one of values in controller -
post model has 2 fields: title , category_id. in simple_form i'd assign name , it's ok, category i'd assign in controller (value different dependends on action). have problem, because every time category_id null. do:
def fun @post=post.new @post.category_id=1 end
it doesn't work and
@post=post.new(category_id: 1)
too.
<%= simple_form_for @post |f| %> <%= f.error_notification %> <%= f.input :title %> <%= f.button :submit %> <% end %> class post < activerecord::base belongs_to :category end class category < activerecord::base has_many :posts end
you can @oscillatingmonkey suggested, suggest use hidden field tag in new
form:
<%= f.hidden_field :category_id, value: @post.category_id %>
in case controller new
be:
@post = post.new(category_id: 1)
calling save
in new
action terrible thing, afaik. every time new
action called, new object created irrespective user continued or not. prefer using hidden field on calling save
method on new
.
Comments
Post a Comment