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

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -