Click in a radiobutton, enable button on solicit.html.erb and save on db

10 views
Skip to first unread message

Elton Santos

unread,
May 12, 2016, 2:38:15 PM5/12/16
to Ruby on Rails: Talk
I really dont know how begin, I have a form in my view (solicit.html.erb) where do iterate in each elements, each element have a radio button, input field and a button for create. When click on button, generate a new portability with date save this. this is my code

<% if params[:search_func_register].present? %>
  <h4><b>Results</b></h4>
    <%= form_tag(@portability, name: 'form', method: :get) do %>
      <table>
        <thead>
          <tr>
            <th>&nbsp;</th>
            <th>Nº contract</th>
            <th>New parcel</th>
            <th>Action</th>
          </tr>
        </thead>
        <tbody>
          <% @authorizations.each do |authorization| %>
            <tr>
              <td><%= radio_button_tag 'authorization', authorization.number_contract %></td>
              <td><%= authorization.number_contract %></td>
              <td>
                <input placeholder="Enter" type="text" name="portability_new_parcel" id="portability_new_parcel">
              </td>
              <td><%= link_to "Request", new_portability_path %></td>
            </tr>
          <% end %>
        </tbody>
      </table>
    <% end %>
<% end %>


I just create a new portability with this values on form... (id, new_parcel)

Contract_number is readonly for show what is the authorization that is doing this portability.

My portabilities_controller is:

 def index
    if params[:search_func_register]
      @employee = Employee.where(register: params[:search_func_register]).includes(:authorizations)
    else
      @portabilities = Portability.all
    end
  end
  def solicit
    if params[:search_func_register]
      @employee = Employee.where(register: params[:search_func_register]).includes(:authorizations)
      @authorizations = Authorization.where(employee_id: @employee)
      @portability = Portability.new
    else
      @authorizations = Authorization.all
    end
  end


But all this return this error when click on button Request:

undefined method `model_name' for nil:NilClass

I guess that create a other page for new portability is the solution. My route is:

resources :portabilities, except: :destroy do
    collection do
      get 'solicit'
    end
  end

Any idea about this, some tips? See ya!!

Colin Law

unread,
May 12, 2016, 3:33:03 PM5/12/16
to Ruby on Rails: Talk
On 12 May 2016 at 19:38, Elton Santos <elton.me...@gmail.com> wrote:
> I really dont know how begin, I have a form in my view (solicit.html.erb)
> where do iterate in each elements, each element have a radio button, input
> field and a button for create. When click on button, generate a new
> portability with date save this. this is my code
>
>> <% if params[:search_func_register].present? %>
>> <h4><b>Results</b></h4>
>> <%= form_tag(@portability, name: 'form', method: :get) do %>

It is always a good idea to copy/paste the complete error message for
us to see, and in particular tell us which line of code it refers to.
I will try to guess, however. The error means that something is nil
that should not be. Is the error on the form_tag line? If so it
probably means that @portability is nil.

Colin
Reply all
Reply to author
Forward
0 new messages