Есть ли в Rails 3 новый способ получения первичного ключа? - PullRequest
0 голосов
/ 24 мая 2011

Я пытаюсь пройтись по учебной книге по рельсам, но продолжаю сталкиваться с дорожными неровностями, поскольку это предназначено для рельсов. Я был в состоянии обойти их до сих пор, в то время как сценарий все еще работает почти идеально, ему не хватает одной функции ... У меня есть следующий код в 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?

1 Ответ

3 голосов
/ 24 мая 2011

Изменение:

<a href="/ads/<% @ad.id %>">Click To View</a>

С:

<a href="/ads/<%= @ad.id %>">Click To View</a>

Кстати, почему бы вам не использовать помощники по URL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...