Strange error at render partial

Hello! I have some problems

I have a pages controler and a view called add_lesson.In this view i use a partial to another view of lesson controller.This is the partial _show.html.erb

<%= form_for @lesson do %> <%= label_tag(:lesson_name, "Lesson title") %></br> <%= text_field_tag :lesson_name, nil, class: "form-control" %></br> <%= label_tag(:lesson_icon, "Choise icon") %> <%= select_tag "lesson_icon", options_for_select([ "ico03", "ico04","ico05","ico06" ])%></br></br>

<%= label_tag(:Title, "Subtitle 1") %></br> <%= text_field_tag :sublesson_title, nil, class: "form-control" %></br> <%= label_tag(:title, "Content") %></br>   <%=text_area_tag 'content', nil, rows: 3, class: 'form-control'%></br>

<%= label_tag(:video, "Video link") %><br> <%= text_field_tag :video_link, nil, class: "form-control" %></br>   <%= submit_tag("Submit", class: "btn btn-primary") %>

<% end %>

IN lesson controler i have      def index      end

  def create     #render text: params.inspect     @lesson = Lesson.new(lesson_params)

    if @lesson.save       redirect_to lessons_url     else       render 'new'     end   end   def new     @lesson=Lesson.new     @lesson.build_sublesson   end   def show     @lesson=Lesson.all   end

  private

  def lesson_params     params.require(:lesson).permit(:lesson_name, :lesson_icon)   end

When i submit the form i receive an error like this First argument in form cannot contain nil or be empty. It is from @lesson in the form but i don't know how to fix it. Please help

change ur form like this

<%= form_for @lesson do |f| %> <%=f.label :lesson_name, “Lesson title” %>

<%= f.text_field :lesson_name, class: “form-control” %>

<%= f.submit %>

Thanks vishal! yes and what you sad was a problem but it crash before do. It's keep telling me First argument in form cannot contain nil or be empty

Hello! I have some problems

I have a pages controler and a view called add_lesson.In this view i use

a partial to another view of lesson controller.This is the partial

_show.html.erb

<%= form_for @lesson do %>

<%= label_tag(:lesson_name, “Lesson title”) %>

<%= text_field_tag :lesson_name, nil, class: “form-control” %>

<%= label_tag(:lesson_icon, “Choise icon”) %>

<%= select_tag “lesson_icon”, options_for_select([ “ico03”,

“ico04”,“ico05”,“ico06” ])%>

<%= label_tag(:Title, “Subtitle 1”) %>

<%= text_field_tag :sublesson_title, nil, class: “form-control” %>

<%= label_tag(:title, “Content”) %>

<%=text_area_tag ‘content’, nil, rows: 3, class: ‘form-control’%>

<%= label_tag(:video, “Video link”) %>

<%= text_field_tag :video_link, nil, class: “form-control” %>

<%= submit_tag(“Submit”, class: “btn btn-primary”) %>

<% end %>

IN lesson controler i have

 def index

 end

def create

#render text: params.inspect

@lesson = Lesson.new(lesson_params)



if @lesson.save

  redirect_to lessons_url

else

  render 'new'

end

end

def new

@lesson=Lesson.new

@lesson.build_sublesson

end

def show

@lesson=Lesson.all

end

private

def lesson_params

params.require(:lesson).permit(:lesson_name, :lesson_icon)

end

When i submit the form i receive an error like this First argument in

form cannot contain nil or be empty. It is from @lesson in the form but

i don’t know how to fix it. Please help

As @vishal told it, your form should be coded as follows:

<%= form_for(@lesson) do |f| %>

<%= f.label :lesson_name %>

<%= f.text_field :lesson_name %>

<% end %>

Try it as it is and post the errors full stack trace to have more idea on what is going on there. It is really difficult to figure out without that.

Your model should be named as Lesson.

You should have routes defined for Lesson resource as well.