小编Tim*_*ils的帖子

Ransack:使用年龄而不是出生日期

我想使用 ransack 为带有Users. 我有一个从出生日期计算年龄的小方法:

def age(dob)
  now = Time.now.utc.to_date
  now.year - dob.year - ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1)
end
Run Code Online (Sandbox Code Playgroud)

这适用于正常显示 ( as in age(@user.date_of_birth))

但是当使用 search_form_for 时,我不能这样做:

<%= search_form_for @search, url: search_users_path, method: :post do |f| %>
    <div class="field">
        <%= f.label :date_of_birth_gteq, "Age between" %>
        <%= f.text_field :date_of_birth_gteq %>
        <%= f.label :date_of_birth_gteq, "and" %>
        <%= f.text_field :date_of_birth_lteq %>
    </div>
<div class="actions"><%= f.submit "Search" %></div>
 <% end %> …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ransack

4
推荐指数
1
解决办法
1902
查看次数

Ruby on Rails:build_model做了什么?

我有一个用户和个人资料模型,我使用相同的表单来填充它们.在我的控制器中,我有一行:@ user.build_profile

我想知道这条线做了什么.用户和配置文件之间的关系是一对一的,配置文件属于用户.

我还有一个名为image的新模型,我想使用嵌套属性与用户建立一对多的关系.在我在用户coltroller中的新动作中,我应该使用类似于上面那样的行吗?@ user.build_image

完整的新动作:

def new         
    @user = User.new
    @user.build_profile


    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @user }
    end
  end
Run Code Online (Sandbox Code Playgroud)

database ruby-on-rails nested-forms

2
推荐指数
1
解决办法
1105
查看次数

标签 统计

ruby-on-rails ×2

database ×1

nested-forms ×1

ransack ×1

ruby ×1