Rails 3: поля токенов, нужна небольшая помощь в настройке моего кода - PullRequest
0 голосов
/ 07 июля 2011

Прямо сейчас у меня есть рабочая установка для полей токенов jquery (с использованием гема jquery_token_input) в моей авторской модели и моей модели постов, используя has_many через: авторство, другими словами, вы начинаете вводить имя автора, и оно появится и вы выбираете это. Если вы не получили результатов, вы можете выбрать «Добавить: новое_имя» вместо этого, и он создаст нового автора.

Я бы хотел использовать этот же метод для пользователей, чтобы назначить имя «коллекции» так же, как это делают авторы, НО настроить его так, чтобы поиск и отображение / создание осуществлялось только для коллекций для одного пользователя.

Нужно ли мне назначать колонку user_id для модели коллекции, когда я вызываю create !? Как бы я изменил "name like?", "% # {Params [: q]}%", чтобы он также включал user_id current_user?

Действительно ценю любые идеи или идеи.

##

class ArtistsController < ApplicationController
  def index
    @artists = Artist.where("name ilike ?", "%#{params[:q]}%")
    results = @artists.map(&:attributes)
    results << {:name => "Add: #{params[:q]}", :id => "CREATE_#{params[:q]}_END"}

    respond_to do |format|
      format.html
      format.json { render :json => results }
    end
  end


## Post model

   has_many :artistizations
   has_many :artists, :through => :artistizations 
   attr_reader :artist_tokens

   def artist_tokens=(ids)
     ids.gsub!(/CREATE_(.+?)_END/) do
       Artist.create!(:name => $1).id
     end
     self.artist_ids = ids.split(",")
   end

1 Ответ

0 голосов
/ 05 января 2012

Я тоже с этим боролся.Я пытаюсь сделать это с habtm tho.Проверьте свой код:

@artists = Artist.where("name ilike ?", "%#{params[:q]}%")

ilike - должно ли это быть like?

Ах, Илике для Postgres.

...