RubyonRails:检索css元素并检查值
我认为这是一个非常直截了当的问题,所以我将着手: subject.rbRubyonRails:检索css元素并检查值,css,ruby-on-rails,ruby,Css,Ruby On Rails,Ruby,我认为这是一个非常直截了当的问题,所以我将着手: subject.rb def current_step @current_step || steps.first end def steps if @title = 'Baseline' %w[sfmfa phq whoqol_bref positive_negative mses_self pam spsir change_questionnaire prosthesis cognitive co
def current_step
@current_step || steps.first
end
def steps
if @title = 'Baseline'
%w[sfmfa phq whoqol_bref positive_negative mses_self pam spsir change_questionnaire prosthesis cognitive comorbidity pain mspss audit ]
elsif @title = 'Treatment Completion'
%w[smfa phq whoqol_bref positive_negative pam spsir ssscq prosthesis pain complications mspss audit ptcs accessing_resources satisfaction ]
else
redirect_to @subjects_path
flash[:notice] = "Did not find title"
end
end
我试图检查我的tc.html.erb网页上Title元素的值(这应该返回'Treatment Completion')。目前,检查不起作用,我每次都以“基线”下定义的步骤结束
我有分页表单的步骤,这些步骤都适用于基线页面,所以现在我尝试传递一组不同的元素作为不同页面的步骤定义
我想我使用了错误的访问器(@title)。我用这个ruby提供的标题是:
<% provide(:title, 'Baseline') %>
如有任何意见,将不胜感激 有几件事是错的。首先,您试图在模型中使用
redirect\u to
。这应该在控制器中使用。其次,@subjects\u path
不是一个实例变量,它是一个url帮助器,因此前面不应该有一个@
符号。第三,您正在赋值,而不是比较if
语句(使用=
而不是=
)
因此,要回答原始问题,您可以通过以下方式修复原始问题:
def steps
if @title == 'Baseline'
%w[sfmfa phq whoqol_bref positive_negative mses_self pam spsir change_questionnaire prosthesis cognitive comorbidity pain mspss audit]
elsif @title == 'Treatment Completion'
%w[smfa phq whoqol_bref positive_negative pam spsir ssscq prosthesis pain complications mspss audit ptcs accessing_resources satisfaction]
else
redirect_to @subjects_path
flash[:notice] = "Did not find title"
end
end
请注意,这只修复了第三个错误。看起来您正在尝试确定模型中视图的状态。您应该让视图处理视图逻辑,如果您想存储状态,即用户已完成步骤的点,您可以使用数据库中的列来完成。感谢您的响应,这就是问题所在。至于我的else块中的所有内容,我只是将其删除。它实际上只是一个占位符,但感谢您的洞察力。所以,一旦我做了这些更改,我得到了他的新错误:nil:NilClass的未定义方法'first'。我不确定它是从哪里来的,因为如果没有if语句,基线的单个示例就不会出错。有什么想法吗?或者我应该做一个单独的线程?再次感谢。编辑不管怎样,结果证明我的逻辑不起作用。很可能你的
@title
变量不是“基线”或“治疗完成”变量,因此步骤返回零。您应该输入一个else
,返回[]
或类似的内容。再次感谢您,这肯定是问题所在。