1

自動検索フィールドから別のフォームにフォーム パラメータを渡そうとしていますが、パラメータの代わりに#<Restaurant:0x4708a10>表示されます。

背景情報: Restaurant と User の 2 つのモデルがあります。レストランには多くのユーザーがいて、ユーザーはレストランに属しています。レストランはデータベースに事前に入力されており、ユーザーがアカウントにサインアップする場合、まずオートコンプリート フィールドを使用してレストランを見つける必要があります。これを行うための URL は users/find_restaurant です。[送信] をクリックすると、ユーザー コントローラーの結果アクションにフォームがポストされ、ユーザーがレストランに既に存在するかどうかが確認されます。ユーザーがすでに終了している場合、その人は招待アクションにリダイレクトされ、そうでない場合は新しいアクションにリダイレクトされます。ユーザーが新しいアクションに移動すると、restaurant_id 列が表示されます#<Restaurant:0x4708a10>

コードは次のとおりです。

class Restaurant < ActiveRecord::Base
  has_many :users

def self.search(search)
  if search
    where('name LIKE ?', "%#{search}%")
  else
    scoped
  end
end

 end


class UsersController < ApplicationController

before_filter :allow_user, :except => ['new', 'find_restaurant', 'results']
autocomplete :restaurant, :name, :display_value => :funky_method, :extra_data => [:id, :address, :city, :state, :zip_code]

  def find_restaurant
    @restaurants = Restaurant.search(params[:search])
    @users = @resturants.map(&:users).flatten.compact.uniq  
  end

  def results
     @restaurants = Restaurant.search(params[:search])
     @users = @restaurants.map(&:users).flatten.compact.uniq
      if @users.blank?
        redirect_to new_user_path
     else
        redirect_to restaurants_path(@school)
   end
end

  def new
    @user = User.new
    @restaurants = Resturant.search(params[:search])
    @user.restaurant_id = @schools
  end

  def create
    @user = User.new(params[:user])
        if @user.save
            redirect_to(:action => 'index')
        else
            render('new')
  end
  end

学校を探すためのフォームは

<%= form_tag results_users_path, :method => 'get' do %>

<p>
    <%= autocomplete_field_tag :search, params[:search], autocomplete_restaurant_name_users_path, :value_method => :id %>
    <%= submit_tag "Next", :name => nil, :id => "submit" %>
</p>

<% end %>

新規のフォームは

<%= simple_form_for @user, :validate => true do |f| %>
<%= f.association :restaurant %>
<%= f.input :first_name %>
<%= f.input :last_name %>
<%= f.input :title %>
<%= f.input :email %>
<%= f.input :username %>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<%= f.input :role %>
<%= f.button :submit %>

<% end %>

どんな助けでも大歓迎です。

4

0 に答える 0