Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中何处声明具有共享部分形式的对象?_Ruby On Rails_Ruby_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails 在Rails中何处声明具有共享部分形式的对象?

Ruby on rails 在Rails中何处声明具有共享部分形式的对象?,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我有一个文本区域表单来创建一个快速的Idea对象。此表单出现在网站的许多部分,因此我将其作为shared/\u idea\u form.html.haml文件移动 我目前正在每个控制器操作中定义新对象,其中表单使用@ideas=Idea.new使其工作 是否有一种更方便的/全局的方式来定义每个动作之外的@ideas=Idea.new?即,作为应用程序控制器中的前置过滤器。我不确定这是否是正确的方法 您可以直接将其放入视图中 <%= form_for @idea ||= Idea.new

我有一个文本区域表单来创建一个快速的
Idea
对象。此表单出现在网站的许多部分,因此我将其作为
shared/\u idea\u form.html.haml
文件移动

我目前正在每个控制器操作中定义新对象,其中表单使用
@ideas=Idea.new
使其工作


是否有一种更方便的/全局的方式来定义每个动作之外的
@ideas=Idea.new
?即,作为应用程序控制器中的前置过滤器。我不确定这是否是正确的方法

您可以直接将其放入视图中

  <%= form_for @idea ||= Idea.new do |f| %>
     #your text area
    <%end%>

#您的文本区域

您可以直接将其放在视图中

  <%= form_for @idea ||= Idea.new do |f| %>
     #your text area
    <%end%>

#您的文本区域

如果您在大多数操作中都有它,是的,这应该是一个好方法。如果是我在你的位置上,我想我会打破规则,并在局部地区这样做。。。有时规则没有意义,这次就是其中之一。您只需要在每一页上都有一个表单,因此您需要始终为表单创建一个新的想法。。或者在局部上这样做,或者只创建没有辅助对象的表单


只有一个意见:)

如果你对大多数动作都有意见,是的,那应该是一个好方法。如果是我在你的位置上,我想我会打破规则,并在局部地区这样做。。。有时规则没有意义,这次就是其中之一。您只需要在每一页上都有一个表单,因此您需要始终为表单创建一个新的想法。。或者在局部上这样做,或者只创建没有辅助对象的表单


只有一个观点:)

有很多选择:使用
体面的曝光
宝石(,很酷!),使用
前过滤器设置
@idea
的值,手动在表单中创建新的
idea
,定义一些助手,为您的表单提供准备好的
Idea

有很多选择:使用
体面的曝光
gem(,很酷!),使用
before\u过滤器设置
@Idea
的值,在表单中手动创建新的
Idea
,在app/controllers/application\u controller.rb中定义一些助手,为您的表单提供准备好的
想法

class ApplicationController < ActionController::Base
  before_filter :create_new_idea

  def create_new_idea
    @idea = Idea.new
  end
end

在app/controllers/application\u controller.rb中:

class ApplicationController < ActionController::Base
  before_filter :create_new_idea

  def create_new_idea
    @idea = Idea.new
  end
end