我正在尝试在我的用户页面上添加日历。我添加了到routes.rb
文件的路由。但我无法理解为什么它不起作用。
route.rb
resources :users do
resources :calendars
end
该错误据说位于 calendars_controler.rb 的第21
行:
19 def new
20 @user = current_user.id
21 @calendar = @user.Calendar.new
22 end
application.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) %>
模型/ user.rb
has_one :calendar
attr_accessible :calendar_id
我将user_id
字段添加到日历索引页面。
模型/ calendar.rb
attr_accessible :event, :published_on, :description, :user_id
belongs_to :user, :foreign_key => :user_id
任何帮助将不胜感激!
答案 0 :(得分:2)
@user
变量设置为用户的 ID ,而不是用户模型实例Calendar
获取@user
,而calendar
是正确的字段名称,在 models / user.rb calendar
,而不是用户 解决方案是:
替换行
@user = current_user.id
与
@user = current_user
替换行
@calendar = @user.Calendar.new
与
@calendar = @user.calendar.new
答案 1 :(得分:0)
替换21
calendars_controller.rb
@calendar = @user.Calendar.new
与
@calendar = @user.calendar.new
答案 2 :(得分:0)
def new
@user = current_user.id
@calendar = @user.Calendar.new
end
在这里,您将@user
即时变量分配给Fixnum(用户ID),这没有意义。
@user = current_user
这是正确的变体。是的,Ruby中的大写字母用于类名和模块名(这是某种特殊类)
答案 3 :(得分:0)
感谢你们,我解决了我的问题
为了解决这个问题
def new @user = current_user @calendar = @ user.build_calendar 端
当我使用关联时,函数new不存在它现在构建
再次感谢