我想将模板中的参数存储起来。由于我不希望模型使用任何数据库,因此它不会从ActiveRecord :: Base继承。我认为应该看起来像这样:
# in view:
<% form_for :question, :url => {:action => "ask"} do |f| %>
<%= f.text_field(:q) %>
<%= submit_tag %>
<% end %>
# in controller:
def ask
# I want this to magically set all variables in @question using
# values from params.
@question = params[:question]
end
# in model:
class Question
attr_accessor :q
def initialize
@q = ""
end
end
但是花了一天半的时间,它似乎不是正确的方法。任何建议都会非常感激。
答案 0 :(得分:0)
即使你正确地设置了你的问题,你打算如何坚持这个?一份文件?
我认为在使用具有自定义持久性的花哨模型之前,深入理解ActiveRecord是一种更好的方法
答案 1 :(得分:0)
看一下这篇文章:
http://pullmonkey.com/2008/1/6/convert-a-ruby-hash-into-a-class-object
它展示了如何创建一个类,该类将从传入的Hash中动态创建一个类。
答案 2 :(得分:0)
您可能想要查看Ryan Bates的Railscast,了解如何创建非ActiveRecord模型 http://railscasts.com/episodes/121-non-active-record-model
...但是我建议如果你正在思考这个问题,那么从你对Sam的答案的评论中听起来就像你可能有另一个RESTful资源在工作 - 即你实际上并不想使用QuestionsController ...而是与你实际创建的内容有关(你提到的方法调用)。您仍然可以将问题对象初始化为该过程的一部分。