rails中的路由和主键

时间:2010-01-18 17:53:19

标签: ruby-on-rails routing model

我是铁杆新手,担心我的问题很无知 - 请保持温柔。

我正在构建一个应用程序,它将对其他网站进行编目和监控,并且需要与外部数据源同步(从而覆盖主键)。

我有下面的模型,但我无法弄清楚访问单个记录的路由(列表工作)

任何指针?

class Affiliate < ActiveRecord::Base

require 'resolv'
  require 'rubygems'
  require 'rwebthumb'
  include Simplificator::Webthumb
  self.primary_key = "domain"
  validates_uniqueness_of :domain
  validates_presence_of [:org_name, :url], :message => "can't be blank"

  after_create :generate_thumbnail 

  def to_param
    id.chomp.gsub(".","")
  end


  def generate_thumbnail
    wt = Webthumb.new(APP_CONFIG['webthumb_api']['key'])
    job = wt.thumbnail(:url => url)
    job.write_file(job.fetch_when_complete(:medium2), "#{RAILS_ROOT}/public/data/#{id}.png")
  end

  def thumbnail_url
    "/data/#{id}.png"
  end

  def thumbnail_localfile
    File.exist?("#{RAILS_ROOT}/public/data/#{id}.png") ? "#{RAILS_ROOT}/public/data/#{id}.png" : nil
  end

  def thumbnail_last_updated
    if thumbnail_localfile
      File.new(thumbnail_localfile).mtime.to_s(:long)
    else
      "No such file"
    end
  end


end

更新:谢谢你们两位!

事实证明问题是我的routes.rb

中的路线排序

2 个答案:

答案 0 :(得分:2)

Stack Overflow响应者很少有意思,即使他们的帖子很快就被排名较高的人编辑。

要获取所有路线的列表,您可以导航到终端中的rails目录,然后发出命令:

rake routes

这将吐出应用程序中的所有路径。如果您使用脚手架生成器创建模型,通常可以转到 http://localhost:3000/:model_name/:action_name/:id 。因此,如果您的模型被命名为Affiliate,并且您的行动是展示会员,并且您希望向ID显示22的会员。您将转到 http://localhost:3000/Affiliate/show/22 。我希望这有帮助,如果不是,请跟进评论答案,我明白,开始学习新的东西,即使学习正确的问题,也可能是一个挑战。

答案 1 :(得分:2)

如果您使用脚手架生成器生成了关联企业模型,那么您应该可以通过http://localhost:3000/Affiliates/show/

访问各个关联企业

如果这不起作用,请尝试在项目配置目录中指定routes.rb中的路由 在那里,您可以将URL与动作相关联,然后自己编写动作。 route.rb的条目: map.connect'linkiliates /:id',: controller =&gt; 'affiliates',:action =&gt; 'show'

然后在控制器中使用一个简单的函数来返回会员

  
    .rb中的

功能:     def show     affiliate = Affiliate.find_by_id(params [:id])     端

  

现在,会员变量将包含由以下标识的会员的属性:id