Ruby on rails 如何使用预定义属性在Rails中创建新对象
我有一个Rails应用程序,它有一堆页面,每个页面都有许多车队。在每个页面上都有一个链接,用于在该页面上创建新车队。这是该链接的代码: @第页)%%> 但是,在下一页上,“conva/new”页属性为空。我错过了什么 编辑这里是我的新和创建功能的车队Ruby on rails 如何使用预定义属性在Rails中创建新对象,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个Rails应用程序,它有一堆页面,每个页面都有许多车队。在每个页面上都有一个链接,用于在该页面上创建新车队。这是该链接的代码: @第页)%%> 但是,在下一页上,“conva/new”页属性为空。我错过了什么 编辑这里是我的新和创建功能的车队 def new @convo = Convo.new(params[:page]) respond_to do |format| format.html # new.html.erb format.x
def new
@convo = Convo.new(params[:page])
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @convo }
end
end
# POST /convos
# POST /convos.xml
def create
@convo = Convo.new(params[:convo])
respond_to do |format|
if @convo.save
format.html { redirect_to(@convo, :notice => 'Convo was successfully created.') }
format.xml { render :xml => @convo, :status => :created, :location => @convo }
else
format.html { render :action => "new" }
format.xml { render :xml => @convo.errors, :status => :unprocessable_entity }
end
end
end
您需要加载页面。。。尝试设置一个before筛选器
before_filter :find_page
private
def find_page
@page = Page.find(params[:page_id])
end
然后使用嵌套资源进行构建
def new
@convo = @page.convos.build
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @convo }
end
end
def create
@convo = @page.convos.build(params[:convo])
.....
end
您需要加载页面。。。尝试设置一个before筛选器
before_filter :find_page
private
def find_page
@page = Page.find(params[:page_id])
end
然后使用嵌套资源进行构建
def new
@convo = @page.convos.build
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @convo }
end
end
def create
@convo = @page.convos.build(params[:convo])
.....
end
我猜您缺少一个“:page=>”
我猜您缺少一个“:page=>”
您的意思是页面参数不能通过
params[:page]
访问?我的意思是应该访问。我将发布我的新函数和创建函数您的意思是页面参数不能通过params[:page]
访问?我的意思是应该访问。我将发布我的新函数和创建函数SSO,然后在Convals_控制器类中使用_过滤器,并在Convals模型中使用def find_页面?我将在ActionController中定义_过滤器之前使用未定义的方法'before_filter'。。。。应用程序控制器继承ActionController,页面控制器应继承应用程序控制器。。。。确保您的控制器具有以下定义类页面controller