Raa*_*aaz 1 ruby ruby-on-rails-4
我的应用程序依赖于变量,page_name但变量中的值page_name仅在提交表单后设置.
我应该使用会话吗?当我搜索时,我发现如果我的应用程序在负载均衡器后面会破坏会话.
在整个Rails应用程序中使变量可访问的更好方法是什么?
创建常量可以解决我的问题,但是在用户填写表单字段中的数据并提交数据之前,不会设置变量中的值.所以基本上,用户负责填充整个应用程序所依赖的变量中的值.
您需要将值保留在数据库(使用ActiveRecord)或共享内存缓存服务器中(假设您可以接受该变量,如果它被推出缓存,将会丢失).
您只需在控制器创建操作中设置数据库值,就像任何其他模型一样.
首先,创建模型
rails generate model variable_name variable_value
Run Code Online (Sandbox Code Playgroud)
要从您的def create操作中保存值:
@app_store = AppStore.find_or_initialize_by_name('variable_name')
@app_store.variable_value = secure_params[:variable_value]
@app_store.save
Run Code Online (Sandbox Code Playgroud)
然后从你的应用程序的任何地方检索
@app_store = AppStore.find_by_name('variable_name')
val = @app_store.variable_value
Run Code Online (Sandbox Code Playgroud)