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