Я пытаюсь пройтись по учебной книге по рельсам, но продолжаю сталкиваться с дорожными неровностями, поскольку это предназначено для рельсов. Я был в состоянии обойти их до сих пор, в то время как сценарий все еще работает почти идеально, ему не хватает одной функции ...
У меня есть следующий код в ads_controller.rb:
class AdsController < ApplicationController
def create
@ad = Ad.new(params[:ad])
@ad.save
end
def new
@ad = Ad.new
end
def show
@ad = Ad.find(params[:id])
end
def index
@ads = Ad.find(:all)
end
end
следующий код в rout.rb:
MeBay::Application.routes.draw do |map|
map.connect '/ads/new', :controller=>'ads', :action=>'new'
map.connect '/ads/create', :controller=>'ads', :action=>'create'
map.connect '/ads/', :controller=>'ads', :action=>'index'
map.connect '/ads/:id', :controller=>'ads', :action=>'show'
map.connect ':controller/:action/:id'
map.connect ':controller/:action;:id.:format'
Следующее в new.html.erb:
<h1>New Ad</h1>
<%= form_for @ad, :url=>{:action=>'create'} do |f| %>
<p><b>Name:</b><br /><%= f.text_field:name %></p>
<p><b>Description</b><br /><%= f.text_area:description %></p>
<p><b>Price</b><br /><%= f.text_field:price%></p>
<p><b>Seller</b><br /><%= f.text_field:seller_id%></p>
<p><b>Email</b><br /><%= f.text_field:email %></p>
<p><b>Image URL</b><br /><%= f.text_field:img_url %></p>
<p> <%= f.submit "Create" %> </p>
<% end %>
и следующие в create.html.erb:
<h3>NEW AD CREATED FOR <%= @ad.name %>!</h3>
<a href="/ads/<% @ad.id %>">Click To View</a>
Что происходит, когда я нажимаю кнопку отправки, когда на новой странице меня переводят в шаблон создания, который отображает имя, однако он не может получить идентификатор из переменной и, таким образом, возвращается на страницу списка, но предполагается вернуться на вновь созданную страницу объявлений .. (т.е. .. / ads / 7, но возвращает / ads /)
Есть ли проблема с синтаксисом или новый способ получить его в рельсах 3?