0

我正在尝试在我的用户页面上放置一个日历。我添加了路径到routes.rb文件。但我不明白为什么它不起作用。

路由.rb

resources :users do
    resources :calendars
end 

据说该错误位于21calendars_controler.rb

   19   def new
   20     @user = current_user.id
   21     @calendar = @user.Calendar.new
   22   end

应用程序.erb

<h1> <% picture3 = image_tag("../images/twit.png", :border =>0, :class =>"smallh1", :class => "blue")%> </h1>
<%= link_to picture3, new_user_calendar_path(current_user.id) %>

模型/用户.rb

 has_one :calendar 
    attr_accessible :calendar_id

我将该user_id字段添加到日历索引页面。

模型/日历.rb

attr_accessible :event, :published_on, :description, :user_id
    belongs_to :user, :foreign_key => :user_id

任何帮助,将不胜感激!

4

4 回答 4

2
  1. 您的@user变量设置为用户ID,而不是用户模型实例
  2. 您尝试获取Calendarfrom @user,whilecalendar是正确的字段名称,在models/user.rb中定义
  3. 您尝试calendar用户 id获取,而不是从用户获取

解决方案是:

  1. 换行

    @user = current_user.id
    

    @user = current_user
    
  2. 换行

    @calendar = @user.Calendar.new
    

    @calendar = @user.calendar.new
    
于 2013-05-21T22:36:40.057 回答
0

替换21你的行calendars_controller.rb

@calendar = @user.Calendar.new

@calendar = @user.calendar.new
于 2013-05-21T22:15:11.233 回答
0
    def new
    @user = current_user.id
    @calendar = @user.Calendar.new
    end

在这里,您将@user即时变量分配给 Fixnum(用户 ID),这没有意义。

@user = current_user

这是正确的变体。是的,Ruby 中的大写字母用于类名和模块名(它们是某种特殊类)

于 2013-05-21T22:36:19.533 回答
0

感谢你们,我已经解决了我的问题

为了解决我做了那个

def new @user = current_user @calendar = @user.build_calendar end

当我使用关联时,新功能不存在,它现在正在构建

再次感谢

于 2013-05-23T11:37:24.080 回答