이전 질문을 보았습니다. 내 대답을 제출하는 동안 삭제되었습니다. 이것은 그 질문과 유사 해 보이므로 이전 질문과 이것에 대한 나의 대답이 여기에 있습니다.
사용자를 국가별로 검색했습니다. 이것이 제가 한 일입니다. 먼저 검색 할 항목을 기반으로 새 열 국가를 만들었습니다. 이 명령은 다음과 같이
$ rails generate migration add_country_to_users country:string
$ rake db:migrate
은 사용자 모델의 attr_accessible에이 문자열을 추가입니다 :
class User < ActiveRecord::Base
attr_accessor :password
attr_accessible :name, :email, :password, :password_confirmation, :country
validates_presence_of :country
..........
attr_accessible
는 대량 할당을 수행 할 수 있습니다. 여기에 새 열을 추가하는 것을 잊지 마십시오.
이제 일단 컨트롤러 기능을 작성할 준비가되었습니다. 국가별로 사용자를 표시하고 싶기 때문에 내 이름을 network
으로 지정했습니다. 내 검색 단어가 국가가 될 것이고 특정 국가에 속한 모든 사용자를 표시 할 것입니다.
class UsersController < ApplicationController
def network
@title = "All users"
@users = User.find_all_by_country(User.find(params[:id]).country)
end
end
를 귀하의 질문에 당신은 이름으로 사용자가 만드는 표시 할 경우 우리의 검색 단어를 기반으로 같은
User.find_all_by_name(User.find(params[:id]).name)
또는 무언가 : 함수 정의는 다음과 같다.
이제 화면에 나타납니다. views/users/
아래에 새 페이지를 만들었습니다. network.html.erb
으로 국가에 속한 사용자 네트워크를 표시하고 싶습니다. 먼저 입력을 제공 할 위치, 즉 검색을 호출하는 위치에서 하나의 양식을 만듭니다. 내 경우에는 양식의 헤더에 링크가 있습니다. 다음과 같이 링크입니다 : 사용자 일단
<li><%= link_to "Network", network_user_path(current_user) %></li>
이 다음과 같은 형태가 표시됩니다 클릭 :
<h1>All users</h1>
<ul class="users">
<% @users.each do |user| %>
<li>
<%= gravatar_for user, :size => 30 %>
<%= link_to user.name, user %>
</li>
<% end %>
</ul>
지금까지 너무 좋아. 이제 마지막 단계는 routes.rb
파일에 추가하여 연결하는 것입니다. 해당 파일에 다음을 추가하십시오. MyApp :: Application.routes.그리기 do
resources :users do
member do
get :following, :followers, :network, :news
end
end
end
이것이 내 애플리케이션에서 수행 한 작업이며 효과가 있습니다. 나는 그것이 도움이되기를 바랍니다.
그 일을 했어! 엄청 고마워! 더 많은 평판이 있다면 너 +1 할거야. – BTHarris