我是一个新手,并为此苦苦挣扎:
我有两个型号:User&工作,关系如下:
class User < ApplicationRecord
has_many :jobs, dependent: :destroy
end
class Job < ApplicationRecord
belongs_to :user
end
在我的工作索引视图中,我有一个搜索表单,我想按地址找到工作(即:查找用户的地址),
<%= form_tag(jobs_path, method: :get) do %>
<%= text_field_tag :address, params[:address] %>
<%= submit_tag 'Search', class:'btn btn-primary' %>
<% end %>
是用户的一个属性:
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
t.string "remember_digest"
t.boolean "admin", default: false
t.string "activation_digest"
t.boolean "activated", default: false
t.datetime "activated_at"
t.string "reset_digest"
t.datetime "reset_sent_at"
t.float "latitude"
t.float "longitude"
***t.string "address"***
t.string "phone"
t.index ["email"], name: "index_users_on_email", unique: true
end
在我的JobsController中,如何指向用户的属性?即:用户的地址?这是我现在的索引函数:
def index
@jobs = if params[:address]
Job.where('address LIKE ?', "%#{params[:address]}%").paginate(page: params[:page], per_page: 20)
else
@jobs = Job.paginate(:page => params[:page], per_page: 4)
end
end
但显然我在搜索时没有得到任何东西。
提前感谢您的指导意见。鲁道夫
答案 0 :(得分:0)
您应该执行以下操作:
Job.joins(:user).where(users: { address: address }) }