ruby-on-rails - 如何通过 rails 将对象从一个 Controller 传递到另一个 Controller ?

标签 ruby-on-rails controller model-view-controller

我一直在努力使render_to成为现实,但是我并没有取得太大的成功。

本质上,我有 Controller 方法:

def first
  #I want to get the value of VAR1 here
end

def second
  VAR1 = ["Hello", "Goodbye"]
  render_to ??
end

我不知道该怎么做。最初,我只想呈现first.html.erb文件,但这似乎也不起作用。

谢谢

编辑:我很感激我收到的答案,但是所有这些都倾向于避免使用render方法或redirect_to。基本上,您不能在 Controller 之间传递变量吗?我必须认为有某种方法,但我似乎找不到。

最佳答案

将对象分配给常量不是一个好主意。的确,这是在全局范围内,但对于每个人来说都是全局范围,因此任何其他访问此请求的用户都将获得此对象。有一些解决方案。

我假设您要完成一个多步骤表单。在这种情况下,您可以将设置的属性作为隐藏字段传递。

<%= f.hidden_field :name %>

如果有很多字段,这可能很繁琐,因此您可能需要遍历params[...]哈希或column_names方法来确定要传递的属性。

或者,您可以将属性存储在session中。
def first
  @item = Item.new(params[:item])
  session[:item_attributes] = @item.attributes
end

def second
  @item = Item.new(session[:item_attributes])
  @item.attributes = params[:item]
end

第三,如Paul Keeble所述,您可以将模型保存到数据库中,但将其标记为不完整。您可能要为此使用state machine

最后,您可能想看看Acts As Wizard plugin

关于ruby-on-rails - 如何通过 rails 将对象从一个 Controller 传递到另一个 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286522/

相关文章:

mysql - RoR - rake rs :index fails with NameError on Rails 4. 0.4(4.1.7),思考狮身人面像 3.1.1

ruby-on-rails - 停止 Sidekiq 重复作业

javascript - 指令 Controller 之间的通信

java - 带有 javaFX 的 MVC

PHP MVC 在发布时添加到数组

css - Sass::Visitors 中的语法错误#new

ruby-on-rails - 跨模型共享 ActiveRecord::Base 枚举

php - MVC : Where should I format data?

javascript - 使用 Ember 动态创建输入(并检索其值)

javascript - SQLFORM 翻译的 Web2py 问题