Rails似乎没有碰到我的控制器

时间:2013-12-16 05:23:38

标签: ruby-on-rails ruby ruby-on-rails-3 rails-activerecord erb

当我使用调试器进行此操作时,它不会触及控制器。

我收到以下错误:

  

调用id为nil,错误地为4 - 如果你真的想要id为nil,请使用object_id

即。 @user是零。即使我将@user设置为通过@user = @Users.first

找到第一个,match ':id' => 'user#show' 也为零

我想通过domain.com/id

访问该用户

的routes.rb

class User < ActiveRecord::Base
   attr_accessible :userLink, :userName
end

模型

def Show
    @user= User.find_by_id params[:id]
    # Attempted this with User.first to see if param was broken    

    respond_to do |format|
       format.html
       format.json { render json: @user}
    end
end

Controller controllers / user_controller.rb

<script type="text/javascript">
    <%=  @user.id %>
</script>

查看文件名视图/ user / show.erb

{{1}}

3 个答案:

答案 0 :(得分:1)

您无需像这样指定路线

只需替换此

match ':id' => 'user#show'

resources :users, only: [:show]

这将为show method

生成默认路线

答案 1 :(得分:1)

你有一个错字。

控制器中的

def Show应为def show

答案 2 :(得分:1)

使用

match '/:id' => 'user#show'

但这不是一个好方法,因为许多路线将被禁用 比如你有 www.yourdomain.com/profile 也会参加你的表演活动。

同时def显示显示应该显示