问题描述
|
我正在尝试阅读一本学习Rails的书,但由于涉及Rails 2.something,我一直遇到路障。到现在为止,我一直可以解决它们,尽管脚本仍然可以正常运行,但是缺少一个功能...
我在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
以下路线中的代码:
MeBay::Application.routes.draw do |map|
map.connect \'/ads/new\',:controller=>\'ads\',:action=>\'new\'
map.connect \'/ads/create\',:action=>\'create\'
map.connect \'/ads/\',:action=>\'index\'
map.connect \'/ads/:id\',: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>
发生什么情况,当我在新页面上单击提交按钮时,我转移到创建模板,该模板显示名称,但是无法从变量获取ID,因此返回到列表页面,但是假设返回到新创建的广告页面。(即/ ads / 7,但返回/ ads /)
是否存在语法问题或将其放入Rails 3的新方法?
解决方法
更改:
<a href=\"/ads/<% @ad.id %>\">Click To View</a>
带有:
<a href=\"/ads/<%= @ad.id %>\">Click To View</a>
顺便说一句,为什么不使用URL帮助器?