2011-01-13 12 views
0

編集と新しいリンクがうまくいかない理由を理解できません。私はCargoControllerというコントローラを持っていて、モデルカーを持っています。 CargoControllerは次のとおりです。Railsがモデルを作成して更新するCant resolve paths

def new_auto 

    end 

    def edit_auto 

    end 
    def index 
    @cars=Car.find_all_by_UserId(session[:user_id]) 
    if @cars.nil? 
    end 
    end 

カーモデルは次のとおりです。

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 

ビューCargoControllerのindex.erbは次のとおりです。

<%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 %> 

ビューの編集と新しいです:

<div class="center"> 
<%= render 'form' %> 
</div> 

テンプレート

<%= 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 %> 

それでは、私は車のコントローラを頼むか

ActionView::Template::Error (undefined method `model_name' for NilClass:Class): 
    1: <%= form_for(@car) do |form| %> 
    2: <table > 
    3:  <tr> 
    4:   <td>. 

私はそれを動作させるために何をしなければならを書く車のレールを追加または更新しよう:?_formは食べましたか私は私はあなたが各アクションのインスタンス変数を作成しないと思い

get "cargo/index" 

    get "cargo/new_auto" 
match ':controller(/:action(/:id))' 
+0

新しい/編集の代わりにnew_auto/edit_autoアクションを使用しない理由はありますか?あなたは資源を使用することができます:その場合は簡単に車。 – raidfive

答えて

0

を持つルートで 。

def new_auto 
    @car = Car.new 
end 

def edit_auto 
    @car = Car.find(params[:id]) 
end 

そして、あなたは "資源:車" 書くべきfollwingとしてroutes.rbをを:

resources :cars 

私はあなたがnew_autoページを見ることができるはずだと思います。

関連する問題