Ruby on rails 如果x为空,则在rubyonrails中显示y

Ruby on rails 如果x为空,则在rubyonrails中显示y,ruby-on-rails,Ruby On Rails,对于用户配置文件,我有两个变量。理想情况下,它们都已填写,但是如果:portfolio\u title为空,我如何将其设置为显示:portfolio?现在它将是空白的 <%= f.label :portfolio, "Personal Website Link" %> <%= f.text_field :portfolio, class: 'form-control', placeholder: "Example: http://IMDb.com" %> <%= f

对于用户配置文件,我有两个变量。理想情况下,它们都已填写,但是如果
:portfolio\u title
为空,我如何将其设置为显示
:portfolio
?现在它将是空白的

<%= f.label :portfolio, "Personal Website Link" %>
<%= f.text_field :portfolio, class: 'form-control', placeholder: "Example: http://IMDb.com" %>
<%= f.label :portfolio, "Personal Website Title" %>
<%= f.text_field :portfolio_title, class: 'form-control', placeholder: "Example: My IMDb Page" %>

根据,如果字段没有值,则可以强制该字段的值:

<%= f.label :portfolio, "Personal Website Link" %>
<%= f.text_field :portfolio, id: 'portfolio_link', class: 'form-control', placeholder: "Example: http://IMDb.com" %>
<%= f.label :portfolio_title, "Personal Website Title" %>
<%= f.text_field :portfolio_title, id: 'portfolio_title', class: 'form-control', placeholder: "Example: My IMDb Page", value: (f.object.portfolio_title.blank? ? f.object.portfolio : f.object.portfolio_title) %>
根据,如果字段没有值,则可以强制该字段的值:

<%= f.label :portfolio, "Personal Website Link" %>
<%= f.text_field :portfolio, id: 'portfolio_link', class: 'form-control', placeholder: "Example: http://IMDb.com" %>
<%= f.label :portfolio_title, "Personal Website Title" %>
<%= f.text_field :portfolio_title, id: 'portfolio_title', class: 'form-control', placeholder: "Example: My IMDb Page", value: (f.object.portfolio_title.blank? ? f.object.portfolio : f.object.portfolio_title) %>

谢谢这是可行的,但我认为用户现在必须保存两次配置文件才能工作。当他们第一次点击save时,它将填充编辑页面上的占位符,但随后他们必须再次点击save,它才能显示在user.show页面上。知道如何修复吗?@rs19您可以使用Javascript进行更生动的示例。我在表单输入中添加了ID以使其正常工作,但是您可以使用Rails为ID提供的默认值。谢谢!这是可行的,但我认为用户现在必须保存两次配置文件才能工作。当他们第一次点击save时,它将填充编辑页面上的占位符,但随后他们必须再次点击save,它才能显示在user.show页面上。知道如何修复吗?@rs19您可以使用Javascript进行更生动的示例。我向表单输入中添加了ID,使其能够正常工作,但您可以使用Rails为ID提供的默认值。
$('#portfolio_link').on('change', function() {
    portfolio_title = $('#portfolio_title');
    if (portfolio_title.val() == '') {
        portfolio_title.val($(this).val());
    }
});