Rails 3 App中的简单搜索表单未显示

我跑过railscast#37,似乎甚至无法将我的搜索表单显示在我的索引页面上。 我的代码有什么问题吗? 提前致谢! 任何帮助是极大的赞赏。

这是表单所在的索引页面:

All users

'get' do %>

nil %>

inheritance人控制器:

 class UsersController  params[:page]) @usersearch = User.search(params[:search]) end ... 

最后,user.rb文件:

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

我看到你以前的问题。 我在提交答案时被删除了。 这看起来与那个问题相似,所以这是我对前一个问题和这个问题的回答。

我根据他们的国家搜索了用户。 所以这就是我为此所做的:首先,我根据我要搜索的内容创建了一个新的列国家。 命令是

  $ 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允许您进行批量分配。 不要忘记在这里添加新列。

完成此操作后,您现在可以编写控制器function了。 我命名为我的network因为我想根据国家/地区显示用户。 我的搜索字将是国家/地区,我将显示属于某个特定国家/地区的所有用户。 function定义如下:

 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因为我想显示属于某个国家/地区的用户网络。 首先有一个表单,您将在其中输入输入,即您调用搜索的位置。 对于我的我在表格的标题中有一个链接。 链接如下:

 
  • <%= link_to "Network", network_user_path(current_user) %>
  • 用户点击此按钮后,将显示以下表单:

     

    All users

      <% @users.each do |user| %>
    • <%= gravatar_for user, :size => 30 %> <%= link_to user.name, user %>
    • <% end %>

    到现在为止还挺好。 现在最后一步是通过在routes.rb文件中添加它们来连接它们。 在该文件中添加以下内容:MyApp :: Application.routes.draw

      resources :users do member do get :following, :followers, :network, :news end end end 

    所以这就是我为我的应用程序所做的工作。 我希望它有所帮助。

    我没有进一步看,但在最近的Rails版本中,form_tag必须有一个等号。 您还应该在开发模式下收到错误消息。 尝试<%= form_tag users_path, :method => 'get' do %>