Ich kann nicht verstehen, warum bearbeiten und neue Links nicht funktioniert. Ich habe Controller namens CargoController und habe Modell Car. CargoController ist:Schienen erstellen und aktualisieren Modell Cant Pfade auflösen
def new_auto
end
def edit_auto
end
def index
@cars=Car.find_all_by_UserId(session[:user_id])
if @cars.nil?
end
end
Car-Modell ist:
class Car < ActiveRecord::Base
validates_presence_of :TransportTypeId
validates_presence_of :CarModelId
set_primary_key :CarId
has_one :TransportType
has_one :CarModel
belongs_to :User
has_many :PropertyOfCar, :dependent => :destroy
has_many :CarProperty, :through => :PropertyOfCar
end
The View CargoController index.erb ist:
<%if [email protected]?%>
<table width="100%" border="0" cellpadding="0px" cellspacing=1px">
<% @cars.each do |car| %>
<tr valign="top" class="<%= cycle('list-line-odd', 'list-line-even') %>">
<td>
<table border="0" width="100%" style="color:black">
<tr>
<td width="15%" align="left" valign="top" >Тип ТС:</td>
<td width="70%" align="left" valign="top"><%= TransportType.find_by_TransportTypeId(car.TransportTypeId).Name %></td>
<td align="right" valign="top" rowspan="2">
<img alt="" src="/images/Truck-icon.png"/>
</td>
</tr>
<tr>
<td width="15%" align="left" valign="top">Car model:</td>
<td width="70%" align="left" valign="top"><%= CarModel.find_by_CarModelId(car.CarModelId).ModelName %></td>
</tr>
<tr>
<td align="center" valign="top" colspan="3">
<label class="Chars"> Properties</label>
</td>
</tr>
<tr colspan="3">
<td>
<%= button_to 'Edit', :controller=>:cargo,:action=>:edit_auto,:id=>car.CarId %>
</td>
</tr>
</table>
</td>
</tr>
<% end %>
</table>
<% end %>
die Ansicht bearbeiten und neu ist:
<div class="center">
<%= render 'form' %>
</div>
Die Templ aß _form ist:
<%= form_for(@car) do |form| %>
<table >
<tr>
<td>
<label for="transport_type">Car Type:</label>
</td>
<td>
<%= form.select(:TransportTypeId, TransportType.all.collect {|p| [ p.Name, p.TransportTypeId ] }, { :include_blank => 'Select type'},{:style=>'width: 200px'}) %>
</td>
</tr>
<tr>
<td>
<label for="transport_type">Car model:</label>
</td>
<td>
<%= form.select(:CarModelId, CarModel.all.collect {|p| [ p.ModelName, p.CarModelId ] }, { :include_blank => 'Select model' },{:style=>'width: 200px'}) %>
</td>
</tr>
<tr>
<td colspan="2">
<%= button_to "add property",{:controller=>:cargo,:action=>:new_property},{:class =>"Button_style"} %>
</td>
</tr>
<tr>
<td colspan="2" align="left">
<%= form.submit "Add car", :class => "submit" ,:class =>"Button_style"%>
</td>
</tr>
</table>
<% end %>
Also ich versuche, hinzuzufügen oder Auto Schienen zu aktualisieren fragen ein Auto-Controller oder schreiben
ActionView::Template::Error (undefined method `model_name' for NilClass:Class):
1: <%= form_for(@car) do |form| %>
2: <table >
3: <tr>
4: <td>.
Was soll ich tun, damit es funktioniert? In einem Routen habe ich
get "cargo/index"
get "cargo/new_auto"
match ':controller(/:action(/:id))'
Gibt es einen Grund, warum Sie keine new_auto/edit_auto-Aktionen anstelle der üblichen neuen/edit verwenden? Sie könnten Ressourcen verwenden: Autos leicht in diesem Fall. – raidfive