ruby on rails - Render simple_form from partial view on application.html.erb -
i want create partial view registration form , add application layout file because shown in navigation bar in dropdown menu.
how can create form in partial view using simple_form gem
, render on application.html.erb
?
<%= simple_form_for(@user, url: account_register_path) |f| %>
considering code above way create form , don't know should define @user
used in application layout nor if need it.
can please clarify this?
don't put in partial, have registration
view on own, called render
...
#app/views/layouts/application.html.erb <%= render "accounts/new" %> #app/views/accounts/new.html.erb <%= simple_form_for :user, url: account_register_path |f| %> ...
whilst you can use symbol populate form_for
, won't include attributes of model, or various hidden methods give context (such id
etc).
if wanted populate accounts#new
view/action variable, you'll have set in applicationcontroller
:
#app/controllers/application_controller.rb class applicationcontroller < actioncontroller::base before_action :set_user private def set_user @user = user.new end end
this allow use:
#app/views/accounts/new.html.erb <%= simple_form_for @user, url: account_register_path |f| %>
--
the best way implement ajax -- way, @user
object created when need (resolves bloat).
we've done before:
you'd need following:
#app/views/layouts/application.html.erb <%= link_to "new user", account_register_path, remote: true %> #app/controllers/accounts_controller.rb class accountscontroller < applicationcontroller respond_to :js, :html def new @user = user.new respond_with @user end end #app/views/accounts/new.js.erb $("<%=j render 'accounts/new' %>").appendto("body");
Comments
Post a Comment