LINUX.ORG.RU

Охапка нубских вопросов при разработке проекта c помощью RoR

 ,


0

1

Делаю один проект, зашел в тупик. есть куча вопросов, а гугл не колется. поетому решил упростить задачу

создал новый ресурс следующей коммандой

rails generate scaffold Person name:string phone:string notes:text personrole:references

получил следующую модель

class Person < ActiveRecord::Base                                               
  belongs_to :personrole                                                        
  attr_accessible :name, :notes, :phone                                         
end

пытаюсь в консольке поигратся

irb(main):031:0* p4 = Person.new({:name => 'vasja', :phone => '123456'})
=> #<Person id: nil, name: "vasja", phone: "123456", notes: nil, personrole_id: nil, created_at: nil, updated_at: nil>
irb(main):032:0> p4.save
   (0.3ms)  SAVEPOINT active_record_1
  Person Exists (0.3ms)  SELECT 1 AS one FROM `people` WHERE (`people`.`phone` = BINARY '123456' AND `people`.`name` = 'vasja') LIMIT 1
   (0.3ms)  ROLLBACK TO SAVEPOINT active_record_1
=> false
irb(main):033:0> Person.find(:all)
  Person Load (0.7ms)  SELECT `people`.* FROM `people` 
=> []
irb(main):034:0> 

Пока только два (дальше будет больше и заковырыстие) вопроса

  • почему «false»/Person Exists ?
  • откуда взялся BINARY
★★★★★
Ответ на: комментарий от ZuBB

так можно делать?

Как уже подметили выше, делать accessible стоит только те аттрибуты, которые позволяется менять пользователю. Флажок is_admin делать доступным не стоит. Те аттрибуты, которые не входят в accessible, надо устанавливать ручками перед записью в базу. В твоем случае можно забить.

В четвертых рельсах

посоветуйте чтото еще

Сейчас даже не знаю, что посоветовать для начала, кроме guides. Раньше все начинали с книги «Agile web development with Rails», которую сигналы несколько раз переписывали под новые версии рельс. Можно еще скринкастов посмотреть, их сейчас просто море: railscasts, ruby tapas, peepcode, destroyallsoftware, etc.

вам можна еще задавать множество нубских вопросов?

Да, конечно, я подписан на тег rails. И лучше на ты.

kelyar ★★★★★
()
Ответ на: комментарий от kelyar

Да, конечно, я подписан на тег rails

спасибо

И лучше на ты.

привичка. + ты старше меня :)

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от kelyar

С твоего позволения еще несколько вопросов

  • как заставить модель проверять данные из модели которая «прицеплена» через has_one. Я нашел validates_associated. Но оно работает «на половину» (ошибки сохраняются/остаются в «подмодели»). Даю 2 скрина для понимания процеса: 1, 2
  • почему каждая страница содержит все CSS`ки и все JS`ки?
  • я пытался редактировать js файл
    vv@vv-Latitude-E5520 ~/work/own/ruby/reard $ cat app/assets/javascripts/adverts.js 
    // Place all the behaviors and hooks related to the matching controller here.
    // All this logic will automatically be available in application.js.
    // You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
    
    var r = 4;
    var t = 'rr';
    vv@vv-Latitude-E5520 ~/work/own/ruby/reard $ 
    но в странице он старый(вообще не такой)? я что-то забыл? (да, я хочу js, а не cs; и у меня заремарен coffee-rail)
  • а как с CSS быть? тоже не хочу никакого sass/scss
ZuBB ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

Eсли не хочешь кофе и сас, то можешь просто переименовать *.js.coffee/.css.scss назад в .js / .css, отключить в Gemfile гемы и писать по старинке (хотя кофескрипт классный).

Да, на каждой странице у тебя весь js/css. Смысл в том, что в продакшене все ассеты заминифаются, склеются и будет всего два файла (js/css), которые закешатся браузером. Обычно в js просто проверяешь, если ли какой-то ключевой элемент дома, специфический для это страницы. При желании можно опять же все разбить на части.

kelyar ★★★★★
()
Ответ на: комментарий от ZuBB

в дев-моде (с включенным asset pipeline) сырцы js/css должны просматриваться через get-параметр ?body=1 - глянь сорс, как они там подгружаются.

или проверь не запущен ли вебсервер в продакшене (вряд ли).

kelyar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.