2010-01-18 2 views
1

Я новичок в рейлах и опасаюсь, что мой вопрос горестно невежествен - будьте осторожны.Маршруты и первичные ключи в рельсах

Я создаю приложение, которое будет каталогизировать и контролировать другие веб-сайты, а также синхронизировать с внешним источником данных (таким образом, переопределяя первичный ключ).

У меня есть модель ниже, но я не могу понять маршрутизации для доступа к отдельным записям (Тхо список работ)

любые указатели?

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

переполнению стеки респондер редко означает, даже если они являются их посты быстро отредактированы кем-то с более высоким рангом.

Чтобы получить список всех ваших маршрутов вы можете перемещаться в каталог рельсов в терминале, а затем выполнить команду:

rake routes 

Это выплюнуть все маршруты в вашем приложении. Если вы создали модель, используя генератор эшафотов, вы можете нормально добраться до него, перейдя на http://localhost:3000/:model_name/:action_name/:id. Поэтому, если ваша модель была названа Affiliate, и ваше действие должно было показать Аффилированное лицо, и вы хотели показать Аффилированное лицо с идентификатором 22. Вы бы отправились в http://localhost:3000/Affiliate/show/22. Надеюсь, это поможет, если не последуйте за комментариями к ответу, я понимаю, что начать с чего-то нового, даже изучая правильные вопросы, чтобы спросить, может быть проблемой само по себе.

2

Если вы создали модель Affiliates с помощью генератора эшафота, то вы должны быть в состоянии получить доступ к отдельным филиалам, делая http://localhost:3000/Affiliates/show/

Если это не сработает, попробуйте указать маршрут в routes.rb в проектах конфигурации каталога ,
Там вы можете связать URL-адрес с действием, а затем написать действие самостоятельно. Вход для routes.rb: map.connect «филиалы /: идентификатор»,: контроллер => «Партнеры»,: действие => «показать»

, а затем простую функцию в контроллерах вернуть филиал

функция в .rb: защиту показать филиал = Affiliate.find_by_id (PARAMS [: ID]) конец

Теперь партнерская переменная будет содержать атрибуты аффилированного лица, идентифицированные по: id

Смежные вопросы