我有两个模型:Project
和Account
。
我希望用户在创建Account
时是否要创建新的Project
,以便我在表单中创建check_box_tag
来创建新项目。
<%= form_for @project, html: {multipart: true} do |f| %>
.
.
<%= check_box_tag('create_account_checkbox') %> Create new account
.
.
<% end %>
在project.rb
模型中我有这个:
class Project < ActiveRecord::Base
after_create :create_account
.
.
.
def create_account
if #Here I need to add smth like `check_box.checked?`
Account.create(:name => name, ...and so on)
end
end
end
我需要添加哪些代码才能使它们正常工作?
谢谢!
答案 0 :(得分:0)
有很多方法可以做到这一点 - 单向:
将mattr_accessor(rails 4)添加到您的项目中,您可以使用复选框进行设置:
class Project < ActiveRecord::Base
mattr_accessor :create_account
after_create :create_account if: :requested_account?
def requested_account?
create_account
end
...
end
现在请注意,您的复选框会返回一些将被解释为布尔值的内容。
(我没有对此进行过测试 - 可能存在mattr_accessor未设置的问题,保存后发生了对..的检查)