• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Rails的:通过PARAMS从一个新的创造

ruby-on-rails 来源:EastsideDeveloper 3次浏览

我有一个事件控制器,我再直接从另一个控制器(注册) (从登记控制器):Rails的:通过PARAMS从一个新的创造

format.html { redirect_to new_event_path(:event_count => 15) } 

(Event controller) 

def new 
    logger.info params 
    @event = Event.new(:event_count => params[:event_count]) 
    ...... 

def create 
    @event = Event.new(params[:event]) 

and inside views/events/new.html.erb 
<%= f.hidden_field :event_count %> 

然而,当我尝试运行此,我得到以下信息:

unknown attribute: event_count 

需要注意的是,当我检查了日志文件,从全新的,我可以看到参数哈希中有{“EVENT_COUNT”:“15”}

请注意,event_count不在我的事件表中。有什么建议么?

更多信息

我已经EVENT_COUNT在我的事件模型中的虚拟属性:

attr_accessible :event_count 

这是在运行时,才使用并不会存储在数据库中的值。最初我使用会话变量传递这个值,但我想知道是否有一个更清洁和更安全的方式来完成这个任务。

什么工作:

我删除attr_accessor中:EVENT_COUNT形成我连模型。

在事件控制器:

def new 
    @event_count = params[:event_count] 
    @event = Event.new 

def create 
    ..... 
    @event_count = params[:event][:event_count] 

,在我的意见/ event.html.erb

<%= f.hidden.field :event_count, :value => @event_count %> 

===========解决方案如下:

我不知道你正在尝试做的,但如果你想存储event_count在你的数据库中,你显然必须将它作为列添加到事件表中。

如果没有必要将其存储在数据库中,则必须将event_count作为虚拟属性添加到事件模型中。像这样:

class Event < ActiveRecord::Base 
    attr_accessor :event_count 
    attr_accessible :event_count 
end 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)